eric6+pyqt5快速开发python GUI程序

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

  • 发表于:
  • 原文链接:http://kuaibao.qq.com/s/20180117G0QTQZ00?refer=cp_1026

扫码关注云+社区