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. """
from PyQt5.QtCore import pyqtSlot from PyQt5.QtWidgets import QMainWindow
from Ui_main_window import Ui_MainWindow from logic_ui_main_window import *
class MainWindow(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() def on_pushButton_select_stock_clicked(self): """ Slot documentation goes here. """ print('clicked!')
@pyqtSlot() def on_pushButton_test_clicked(self): """ Slot documentation goes here. """ print('test2')
@pyqtSlot() def on_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') import sys from PyQt5.QtWidgets import QApplication app = QApplication(sys.argv) dlg = MainWindow() dlg.showMaximized() sys.exit(app.exec_())
关于作者:魏佳斌,互联网产品/技术总监,北京大学光华管理学院(MBA),特许金融分析师(CFA),资深产品经理/码农。偏爱python,深度关注互联网趋势,人工智能,AI金融量化。致力于使用最前沿的认知技术去理解这个复杂的世界。
|