PyCharm+QT Designer整合
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:
Search “tools” & select “External Tools”
点击”+” 号,添加QT Designer External Tools
注意:$FileDir$
变量可以从Insert macro中选择 ,也可以手写
名字随意起,主要是能找到PyQt4下的designer.exe文件,工作目录则是$FileDir$,意思为当前文件所在目录
添加PyUIC Tool
这个Tool能够将QT Designer生成的.ui文件转化为.py文件。
主要是通过QT指令来实现的:
-m PyQt4.uic.pyuic $FileName$ -o $FileNameWithoutExtension$.py
当然也可以在commands prompt中使用这条指令。
或者例如:pyuic4.exe -o ui_Login.py Login.ui(我一般用这个)把Login.ui 生成ui_Login.py文件
配置如图,名称:自定义。
程序栏写入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,如图(如何设计后文介绍):
将.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)
而且要增加代码:
12345678if
__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_())
PyCharm+QT Designer整合的更多相关文章
- PyCharm+Qt Designer+PyUIC安装配置教程
Qt Designer用于像VC++的MFC一样拖放.设计控件 PyUIC用于将Qt Designer生成的.ui文件转换成.py文件 Qt Designer和PyUIC都包含在PyQt5中,所以我们 ...
- 基于Qt Designer和PyQt5的桌面软件开发--环境搭建和入门例子
本文介绍了如何使用技术栈PyCharm+Qt Designer+PyQt5来开发桌面软件,从环境搭建.例子演示到对容易混淆概念的解释.文中用到的全部软件+代码下载链接为:https://url39 ...
- PyCharm中Qt Designer+PyUIC配置
本文环境配置: 系统=>windows10:64位 语言=>Python:3.7.1 第三方库PyQT5:5.11.3pyqt5-tools:5.11.3.1.4 工具=>PyCha ...
- QT designer的安装与汉化(pycharm)
QT designer的安装 1.安装好Python3的环境 添加环境变量,保证安装正确, 2.安装PyQt5 采用命令安装,Win+R,输入CMD,打开命令框,输入以下命令.后面是豆瓣的镜像地址,是 ...
- PyCharm安装PyQt5及其工具(Qt Designer、PyUIC、PyRcc)详细教程
摘要:Qt是常用的用户界面设计工具,而在Python中则使用PyQt这一工具包,它是Python编程语言和Qt库的成功融合.这篇博文通过图文详细介绍在PyCharm中如何完整优雅地安装配置PyQt5的 ...
- Win10安装PyQt5与Qt Designer【转】
https://blog.csdn.net/u011342224/article/details/78879633 1.直接在cmd中通过pip安装PyQt5 1 pip install pyqt5 ...
- Win10安装PyQt5与Qt Designer
1.直接在cmd中通过pip安装PyQt5 1 pip install pyqt5 会自动下载PyQt5以及sip并安装,因为PyQt5不再提供Qt Designer等工具,所以需要再安装pyqt5- ...
- python的部分GUI模块简介tkinter、pyqt5(Qt Designer)
笔者认为,这两个作为Python3较为常用且简单的GUI模块,是Python开发者所必须学习至少是了解的. 其中tkinter为Python3自带的GUI模块,而pyqt5则需要通过pip insta ...
- PyQt(Python+Qt)学习随笔:Qt Designer中图像资源的使用及资源文件的管理
一.概述 在Qt Designer中要使用图片资源有三种方法:通过图像文件指定.通过资源文件指定.通过theme主题方式指定,对应的设置界面在需要指定图像的属性栏如windowIcon中通过点击属性设 ...
随机推荐
- javascript实现数据结构: 树和二叉树,二叉树的遍历和基本操作
树型结构是一类非常重要的非线性结构.直观地,树型结构是以分支关系定义的层次结构. 树在计算机领域中也有着广泛的应用,例如在编译程序中,用树来表示源程序的语法结构:在数据库系统中,可用树来组织信息:在分 ...
- 19_AOP概述
[AOP的使用场景] 性能测试 访问控制 事务管理 日志记录 [AOP相关术语] [ 连接点 Joinpoint ] 程序执行的某个特定位置.(假如Car类有drive()方法,那么在drive()方 ...
- Strom入门
Worker.Executor.Task详解: Storm在集群上运行一个Topology时,主要通过以下3个实体来完成Topology的执行工作:1. Worker Process(工作进程)——S ...
- JS高级程序设计第三版——JavaScript简介
JavaScript简史 JavaScript由Netscape(网景)公司在1995年发布,最开始的主要目的是处理以前由服务器端语言负责的一些输入验证操作,以便提高用户体验,后来就慢慢的发展为一门强 ...
- webstorm 2017.1 破译
安装完webstorm后, 在弹出的注册窗口选择 activate > license server > 在 License server address 里输入 "http:/ ...
- March 24 2017 Week 12 Friday
Our lives are brief, that is why it's important to search for meaning. 人生短暂,所以才要寻找它的意义. What can we ...
- refinedet网络结构
refinedet只预测4个层,并且只有conv6_1.conv6_2,没有ssd中的conv7.8.9 refinedet的4个层都只有1个aspect ratio和1个min_size,所以每层每 ...
- Google TensorFlow 学习笔记一 —— TensorFlow简介
"TensorFlow is an Open Source Software Library for Machine INtenlligence" 本笔记参考tensorflow. ...
- sqlite简单笔记
五种约束需要注意的地方 1.自增使用:autoincrement 2.约束必须进行后面处理:unique(字段[多个可以以逗号分开]) 3.外键必须放后面:foreign key(字段引用) refe ...
- 【洛谷P2574】XOR的艺术
XOR的艺术 题目链接 用线段树维护sum, 修改时 tag[p]^=1; sum=r-l+1-sum; 详见代码 #include<iostream> #include<cstdi ...