anaconda里内置了pyqt5,用来开发GUI程序已经非常容易。但容易归容易,控件一多,就比较烦琐,初始化位置,事件绑定,对齐等等。
如果能像C#(winform)一样拖拽多好,其实是有的,就是qt-designer,但不可能像vc一样,开箱即可用。
ananonda里只打包了pyqt5,缺少相应的工具,需要pip install pyqt-tools。
然后下载eric6。
需要先安装QScintilla, 同样pip install QScintilla即可。
主界面由qt designer生成,然后在事件代码里写行为交互。
# -*- coding: utf-8 -*-
"""
Module implementing MainWindow.
"""
fromPyQt5.QtCoreimportpyqtSlot
fromPyQt5.QtWidgetsimportQMainWindow
fromUi_main_windowimportUi_MainWindow
fromlogic_ui_main_windowimport*
classMainWindow(QMainWindow, Ui_MainWindow):
"""
Class documentation goes here.
"""
def__init__(self, parent=None):
"""
Constructor
@param parent reference to the parent widget
@type QWidget
"""
super(MainWindow,self).__init__(parent)
self.setupUi(self)
self.widgetsmgr = {}
ui_setup_webengine(self.widget_webengine,self.widgetsmgr)
@pyqtSlot()
defon_pushButton_select_stock_clicked(self):
"""
Slot documentation goes here.
"""
print('clicked!')
@pyqtSlot()
defon_pushButton_test_clicked(self):
"""
Slot documentation goes here.
"""
print('test2')
@pyqtSlot()
defon_pushButton_ana_stock_clicked(self):
print('clicked')
print(self.lineEdit_stock_code.text())
gen_stock_page(self.lineEdit_stock_code.text())
load_page(self.widgetsmgr)
if__name__ =='__main__':
print('main')
importsys
fromPyQt5.QtWidgetsimportQApplication
app = QApplication(sys.argv)
dlg = MainWindow()
dlg.showMaximized()
sys.exit(app.exec_())
关于作者:魏佳斌,互联网产品/技术总监,北京大学光华管理学院(MBA),特许金融分析师(CFA),资深产品经理/码农。偏爱python,深度关注互联网趋势,人工智能,AI金融量化。致力于使用最前沿的认知技术去理解这个复杂的世界。
领取专属 10元无门槛券
私享最新 技术干货