zoukankan      html  css  js  c++  java
  • Python-使用PyQT生成图形界面

    1.安装PyQT5 以及QT Designer工具包,这里使用清华大学的源,安装快一些。

    pip install PyQt5 -i https://pypi.tuna.tsinghua.edu.cn/simple
    pip install PyQt5-tools -i https://pypi.tuna.tsinghua.edu.cn/simple

    2.安装PyQt5 会根据Python的安装路径自动进行安装,不需要修改,安装好以后,测试安装是否成功。写下面的代码,运行看运行是否正确。

    import sys
    from PyQt5 import QtWidgets
    if __name__ == '__main__':
        app = QtWidgets.QApplication(sys.argv)
        w = QtWidgets.QWidget()
        w.resize(400, 200)
        w.setWindowTitle("hello lyshark")
        w.show()
        exit(app.exec_())

    接着直接双击运行,如果成功执行,那么会看到一个窗体生成了。

    3.打开QT设计师designer.exe,一般路径是:PythonPython38Libsite-packagespyqt5_toolsQtin 就可以使用图形界面添加。

    4.将设计好的窗口,保存成*.ui文件,Qt Designer设计出来的文件默认为.ui文件,里面包含的类css布局设计语言,如果想用python运行,我们还需要将它转换成.py文件。

    输入转换命令:pyuic5 -o main.py main.ui qt工具会自动将其装换为对应的py文件,这样就不需要手动写代码构建了。

    5.打开生成的.py文件,Ui_MainWindow这个类已经把布局都写好了。我只要修改调用一下就可以运行。 在代码后面添以下代码:

    if __name__ == '__main__':  
        app = QtWidgets.QApplication(sys.argv)
        MainWindow = QtWidgets.QMainWindow()
        ui = Ui_MainWindow()
    
        ui.setupUi(MainWindow) 
        MainWindow.show()
        sys.exit(app.exec_()) 

     直接点击运行即可看到生成的界面啦,但是运行后,后面会有cmd窗口,不美观,你可以将文件改为 main.pyw 然后运行,就没有后面的CMD窗口了。

    import sys
    from PyQt5.QtWidgets import QWidget,QApplication
    
    class Demo(QWidget):
        def __init__(self):
            super().__init__()
            self.intui()
    
        def intui(self):
            self.resize(350,250)
            self.move(300,500)
            self.setWindowTitle("hello world")
            self.show()
            
    if __name__ == '__main__':
        app=QApplication(sys.argv)
        obj=Demo()
        sys.exit(app.exec_())

    添加按钮,点击后退出。

    import sys
    from PyQt5.QtWidgets import QWidget,QApplication,QPushButton,QToolTip
    from PyQt5.QtGui import QFont
    from PyQt5.QtCore import QCoreApplication
    class Demo(QWidget):
        def __init__(self):
            super().__init__()
            self.intui()
    
        def intui(self):
            btn=QPushButton("提交",self)
            btn.clicked.connect(QCoreApplication.instance().quit)
            btn.resize(btn.sizeHint())
            btn.move(102,102)
            self.setGeometry(300,300,300,300)
            self.show()
    
    if __name__ == '__main__':
        app=QApplication(sys.argv)
        obj=Demo()
        sys.exit(app.exec_())
  • 相关阅读:
    尝试用博客园写个人日记
    db4o能代替Hibernate吗?
    RSS是否能支持携带扩展的权重信息呢?
    log4view可以更清楚地看log文件,不知道咋用
    tafiti.com体验微软的silverlight
    推荐两个插件DPack, Resharper
    用美味书签的标签实现类似nextlib的知识管理
    进程通讯的多种方式
    多维角度聊聊结对编程
    在Windows下编译和.NET运行MemCached
  • 原文地址:https://www.cnblogs.com/LyShark/p/9187344.html
Copyright © 2011-2022 走看看