一、开发环境
python开发环境用的是Anaconda3,也好像是通过Anaconda安装的PyQt5
二、不使用Designer的方式
在pycharm里创建一个项目并新建一个main.py,输入以下代码:
import sys
from PyQt5 import QtWidgets
if __name__ == '__main__':
app = QtWidgets.QApplication(sys.argv)
w = QtWidgets.QWidget()
w.resize(400, 200)
w.setWindowTitle("hello PyQt5")
w.show()
exit(app.exec_())
三、使用Disigner设计UI的方式
1.在D:\ProgramData\Anaconda3\Library\bin目录下有个Designer.exe,双击运行。
这里创建一个mainwindow,然后拖动UI,最后保存为.ui文件
2.通过pyuic将ui文件转换为py文件
cmd下命令:
python -m PyQt5.uic.pyuic -o D:\pyqt_file\ui_mainwindow.py D:\pyqt_file\frist.ui
3.将生成的py文件放在之前在pycharm里创建的项目下
4.main.py的代码如下:
import sys
from ui_mainwindow import *
if __name__ == '__main__':
app = QtWidgets.QApplication(sys.argv)
MainWindow = QtWidgets.QMainWindow()
ui = Ui_MainWindow()
ui.setupUi(MainWindow)
MainWindow.show()
sys.exit(app.exec_())
四、控件事件(QRadioButton为例)
1.不带参数
在MainWindow类的setUi函数里的QRadioButton创建了后输入以下代码:
self.radioButton.clicked.connect(self.srvStartClicked)
然后再再该类下编写事件处理方法
def srvStartClicked(self):
print("start server")
2.带参数
此时要用到lambda
在MainWindow类的setUi函数里的QRadioButton创建了后输入以下代码:
self.radioButton.clicked.connect(lambda:self.srvStartClicked("start"))
然后再再该类下编写事件处理方法
def srvStartClicked(self,text):
print("start server"+text)
3.QRadioButton事件介绍
上面用到了点击事件cliced,此外常用的还有toggled
self.radioButton.toggled.connect(self.srvStartClicked)