PyCharm+QT Designer整合

PyCharm+QT Designer整合CMD 下使用 pip 安装 PyQt4 或者 PYQT5 这里要注意 你下载的 PYQT5 不包含 QTdesigner 还要 pip3installP tools 好像 Pyqt5 中将 designer 分离了或者查看源码 https github com altendky pyqt5 tools 编译安装将 QTDesigner 整合到 PyCharm 的 ExternalTool 中 以后就可

CMD下使用pip安装PyQt4或者PYQT5

这里要注意,你下载的PYQT5不包含QT designer

还要:pip3 install PyQt5-tools,好像Pyqt5中将designer分离了或者查看源码:https://github.com/altendky/pyqt5-tools,编译安装

将QT Designer整合到PyCharm的External Tools中,以后就可以非常方便的调用QT Designer工具了。

添加QTDesgner Tool

打开PyCharm的Settings: 

PyCharm+QT Designer整合

 Search “tools” & select “External Tools” 

PyCharm+QT Designer整合

PyCharm+QT Designer整合

名字随意起,主要是能找到PyQt4下的designer.exe文件,工作目录则是$FileDir$,意思为当前文件所在目录

添加PyUIC Tool

-m PyQt4.uic.pyuic $FileName$ -o $FileNameWithoutExtension$.py 

当然也可以在commands prompt中使用这条指令。

或者例如:pyuic4.exe -o ui_Login.py Login.ui(我一般用这个)把Login.ui 生成ui_Login.py文件

PyCharm+QT Designer整合

 

 

配置如图,名称:自定义。 程序栏写入python所在目录下的python.exe文件。参数则是:-m PyQt4.uic.pyuic $FileName$ -o $FileNameWithoutExtension$.py 就是生成一个与当前操作文件相同名字的python文件。(如若用的是PyQT5,将数字4换成5即可,其他无需动) 工作目录则是$FileDir$,意思为当前文件所在目录 点击tools文件下的External Tools会出现刚刚添加的扩展工具 

 

练习使用: 使用designer,点击tools文件下的External Tools会出现刚刚添加的扩展工具(或者找到PyQt4中的designer.exe文件,双击打开)
  
直接出现designer界面: 

 

设计了一个简单的登陆窗口,文件名为Login.ui,如图(如何设计后文介绍): 

 PyCharm+QT Designer整合

 

将.ui文件生成.py文件:  第一种方式: 命令行中输入如下命令 pyuic5.exe -o ui_Login.py Login.ui处理完成后会在同目录下生成问价ui_Login.py 第二种方式: 将Login.ui添加到pycharm中,点击Login.ui(即选中)只后在扩张工具中找到PyUIC,点击之后就会在同级目录下生成ui_Login.py文件,如图: 

 

使用Pycharm,pyuic将.ui文件转换为.py文件时要删除三行ui代码 MainWindow.setCentralWidget(self.centralwidget)、   MainWindow.setMenuBar(self.menubar)、    MainWindow.setStatusBar(self.statusbar) 而且要增加代码:

1

2

3

4

5

6

7

8

if __name__=="__main__"

    import sys 

    app=QtWidgets.QApplication(sys.argv) 

    widget=QtWidgets.QWidget() 

    ui=Ui_MainWindow() 

    ui.setupUi(widget) 

    widget.show() 

    sys.exit(app.exec_())

只有就可以直接运行代码 ui_Login源代码(如果安装pyqt4,即可直接运行): 
# -*- coding: utf-8 -*- # Form implementation generated from reading ui file 'C:\Users\Administrator\Desktop\Login.ui' # # Created by: PyQt5 UI code generator 5.11.2 # # WARNING! All changes made in this file will be lost! from PyQt5 import QtCore, QtGui, QtWidgets class Ui_MainWindow(object): def setupUi(self, MainWindow): MainWindow.setObjectName("MainWindow") MainWindow.resize(597, 600) self.centralwidget = QtWidgets.QWidget(MainWindow) self.centralwidget.setObjectName("centralwidget") self.label = QtWidgets.QLabel(self.centralwidget) self.label.setGeometry(QtCore.QRect(70, 80, 54, 12)) self.label.setObjectName("label") self.label_2 = QtWidgets.QLabel(self.centralwidget) self.label_2.setGeometry(QtCore.QRect(70, 160, 54, 12)) self.label_2.setObjectName("label_2") self.lineEditUser = QtWidgets.QLineEdit(self.centralwidget) self.lineEditUser.setGeometry(QtCore.QRect(270, 70, 113, 20)) self.lineEditUser.setObjectName("lineEditUser") self.lineEditPassword = QtWidgets.QLineEdit(self.centralwidget) self.lineEditPassword.setGeometry(QtCore.QRect(270, 150, 113, 20)) self.lineEditPassword.setObjectName("lineEditPassword") self.pushButtonOK = QtWidgets.QPushButton(self.centralwidget) self.pushButtonOK.setGeometry(QtCore.QRect(160, 250, 75, 23)) self.pushButtonOK.setObjectName("pushButtonOK") self.pushButtonCancel = QtWidgets.QPushButton(self.centralwidget) self.pushButtonCancel.setGeometry(QtCore.QRect(280, 250, 75, 23)) self.pushButtonCancel.setObjectName("pushButtonCancel") self.labelTips = QtWidgets.QLabel(self.centralwidget) self.labelTips.setGeometry(QtCore.QRect(70, 220, 54, 12)) self.labelTips.setObjectName("labelTips") # MainWindow.setCentralWidget(self.centralwidget) self.menubar = QtWidgets.QMenuBar(MainWindow) self.menubar.setGeometry(QtCore.QRect(0, 0, 597, 23)) self.menubar.setObjectName("menubar") # MainWindow.setMenuBar(self.menubar) self.statusbar = QtWidgets.QStatusBar(MainWindow) self.statusbar.setObjectName("statusbar") # MainWindow.setStatusBar(self.statusbar) self.retranslateUi(MainWindow) QtCore.QMetaObject.connectSlotsByName(MainWindow) def retranslateUi(self, MainWindow): _translate = QtCore.QCoreApplication.translate MainWindow.setWindowTitle(_translate("MainWindow", "MainWindow")) self.label.setText(_translate("MainWindow", "用户名")) self.label_2.setText(_translate("MainWindow", "密码")) self.pushButtonOK.setText(_translate("MainWindow", "确定")) self.pushButtonCancel.setText(_translate("MainWindow", "取消")) self.labelTips.setText(_translate("MainWindow", "TextLabel")) if __name__=="__main__": import sys app=QtWidgets.QApplication(sys.argv) widget=QtWidgets.QWidget() ui=Ui_MainWindow() ui.setupUi(widget) widget.show() sys.exit(app.exec_()) 
  

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/174067.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月27日 上午7:17
下一篇 2026年3月27日 上午7:17


相关推荐

  • MPLS TE可靠性及其案例

    MPLS TE可靠性及其案例

    2021年4月15日
    154
  • ORACLE游标(oracle游标属性)

    ORACLE游标(oracle游标属性)文章目录1概述1.1思维导图2语法2.1基本写法(4步)2.2游标4大属性3分类3.1静态游标3.1.1隐式游标dml3.1.2显式游标cursor3.2动态游标3.2.1自定义类型refcursor3.2.2系统类型sys_refcursor4扩展4.1三种游标循环效率对比4.2实例:实际开发中,游标遍历数据1概述1.游标是什么?用来存储多条查询数据的一种数据结构(’结果集’),它有一个’指针’,从上往下移动(’fetch’),从而能够’

    2022年4月18日
    89
  • Document类型、HTMLDocument类型和document对象的区别[通俗易懂]

    Document类型、HTMLDocument类型和document对象的区别[通俗易懂]Dcoment表示文档,这里的文档可以是HTML文档,也可以是XML文档,换句话说Document类型能表示HTML和XML等文档; HTMLDocument对象继承自Document对象,专用于表示HTML文档; document对象是HTMLDocument对象的一个实例,表示整个HTML页面,又叫做页面的根节点;Document对象(根节点)的特征:<!DOCTYPEht…

    2022年7月19日
    33
  • QWidget(长文)

    QWidget(长文)一 描述 1 QWidget 是用户界面的原子 它从窗口系统接收鼠标 键盘和其他事件 并在屏幕上绘制自己的表示 每个小部件都是矩形的 它们按 Z 顺序排序 小部件由其父部件和它前面的小部件剪裁 2 未嵌入父窗口小部件的 QWidget 称为窗口 通常 窗口有边框和标题栏 3 QWidget 的一些没有直接使用 例如 QWidget 有一个字体属性 但从不使用它 而是由其子类使用 4 在实现一个新的小部件时 重新实现 sizeHint 为小部件提供一个合理的默认大小并使用 setSizePolic

    2026年3月18日
    2
  • MapXtreme 2005 学习心得 道路区域选择(十三)

    MapXtreme 2005 学习心得 道路区域选择(十三)

    2022年3月5日
    41
  • oracle 字段全大写,oracle 批量修改表名 字段为大写[通俗易懂]

    oracle 字段全大写,oracle 批量修改表名 字段为大写[通俗易懂]修改那个表空间必须用那个表空间的用户登录–oracle批量修改表名为大写(当前登录用户)beginforcin(selecttable_nametnfromuser_tableswheretable_name<>upper(table_name))loopbeginexecuteimmediate‘altertable”‘||c.tn||‘”re…

    2022年5月13日
    52

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号