美文网首页
2018-08-26

2018-08-26

作者: 一秆子数码 | 来源:发表于2018-08-28 19:25 被阅读0次

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指令来实现的:

-mPyQt4.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)

而且要增加代码:

if__name__=="__main__": 

    importsys 

    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!fromPyQt5import QtCore, QtGui, QtWidgetsclass 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_())

 

相关文章

  • 2018-08-26

    2018-08-26 现在立刻马上 2018-08-26 20:53 · 字数 599 · 阅读 0 · 日记本 ...

  • 付出不亚于任何人的努力

    戴师傅 2018-08-26 2018-08-26 20:32 打开App (稻盛哲学学习会)打卡第122天 姓名...

  • 小程序学习第8天

    2018-08-26昨天没学,空白。

  • 2018-08-26

    2018-08-26 陈顺富简书作者 2018-08-26 09:28 打开App 部门:三分厂 岗位:真空常白班...

  • 2018-08-27

    【59号-张玉-如何学习读后总结】 2018-08-26 22:09 · 字数 594 · 阅读 2 · 日记本 ...

  • 2018-08-26

    2018-08-26 事件:今天参加以前同事孩子的婚礼。 感受:惊叹,感动。 对方:欣喜,开心,激动。 想法:时间...

  • L4-U1-2-Vocabulary2-Dialogue

    流利说 D60 2018-08-26 日 一、复习 Level4-Unit1-Part2*Learning- Vo...

  • 2018-08-27

    江苏万千工品金秀 万千工品金秀 2018-08-26 20:48 · 字数 155 · 阅读 11 · 日记本 姓...

  • 用正则表达式做日期格式化

    输出:2018-08-26 21:11:15可以输入其他的分隔符YYYY/MM/dd HH:mm:ss 201...

  • 颠覆世界的互联网思维(二)

    2018-08-26 D28 / 33 【读书感悟】3173-安安 Chapter 1 以你为中心:自我颠覆背后的...

网友评论

      本文标题:2018-08-26

      本文链接:https://www.haomeiwen.com/subject/wkloiftx.html