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金融量化。致力于使用最前沿的认知技术去理解这个复杂的世界。
联系客服