分享

eric6+pyqt5快速开发python GUI程序

 AI量化实验室 2023-10-12 发布于北京

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

    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多