pyqt笔记

忙了一天,终于将pyqt的环境配置好,并且用ui整出第一个图形界面,虽然之前用过C++和python的tkinter写过界面,但能将界面显示出来,证明一天的努力没有白费,现将今天的成果总结一下。

  1.环境配置问题:

   这是整个过程中遇到的第一个,也是花费时间最多的问题,我用的是pycharm社区版,python的版本是2.7.13,系统是win7 64位,按照一般的方法,安装python库的方法是打开pycharm->seting->工程项目名->project  Interpreter里面的pip来搜索包并安装,但这次却失败了,我认为是和我的电脑装有两个版本的python有关吧。另外一个是python3.5.3版本

在cmd里面输入pip2 install PyQt4显示是安装失败,无匹配版本,这让我很抓狂。而且对于两个版本python的pip冲突问题我没有什么好的办法。

上网查了资料,很多文章都是让先下载sip,然后用VS的命令行Windows Desktop Command Prompts来编译,再安装PyQt4,我按这个方法折腾很久,一开始是找不到VS这个工具,我的是2015,网上的都是2010,图形菜单这些是不一样的,折腾一段时间后在开始菜单的Visual Studio Tools找到了它,且为选择那个版本的工具来编译sip纠结一阵,最终我决定每个版本都试一下,它编译的方法是先解压sip的压缩包,再到cmd(不是VS那个工具)上用cd +sip文件夹路径转到那个目录,再用python configure.py那个文件,然后打开vs的工具,我的VS安装在D盘,而那个文件夹目录是在C盘python的目录下,开始我不知道如何转到那个目录,用cd +目录名是没办法的,最后先输入C:\,切换到C盘后再用cd 命令,再用nmake


nmake install

编译后并没有什么用,而且编译过程中它显示了很多错误信息。经过一番折腾我不得不放弃这个方法,后来又查到另外一篇文章说直接安装PyQt即可,于是我就去它提供的网站下载了对应版本的PyQt 

http://sourceforge.net/projects/pyqt/files/PyQt4/PyQt-4.10.3/PyQt4-4.10.3-gpl-Py2.7-Qt4.8.5-x64.exe

下载一路next安装完成即可,

添加QTDesgner Tool

打开PyCharm的Settings,Search “tools” & select “External Tools”




点击”+” 号,添加QT Designer External Tools 

1).设置“Qt Designer” -- 这个主要用来设计 Qt界面

在Qt Designer的设置中,Program选择PyQt安装目录中 designer.exe 的路径

Work directory 使用变量  $ProjectFileDir$  (点击后面的 Insert macro 按钮可以不用输入双击上屏)


2).设置“PyUIC” -- 这个主要是用来将 Qt界面 转换成 py代码



还有脚本的设置

C:\Python27\Lib\site-packages\PyQT4\uic\pyuic.py $FileName$ -o $FileNameWithoutExtension$.py

那个C:\Python27是我Python安装的路径,把上面的Python路径修改成自己的即可

Work directory 使用变量 $ProjectFileDir$

注意python的版本和PyQt的版本要一致,否则会出现错误。

而在配置好环境,将ui转成.py文件时,生成的.py文件要加上这些

代码开头加import sys

末尾加

app = QtGui.QApplication(sys.argv)

win = Ui_MainWindow()

win.show()
最后结果
 

这是我的ui转换后的代码

# Form implementation generated from reading ui file 'untitled.ui'
#
# Created: Sun Aug 13 22:46:53 2017
#      by: PyQt4 UI code generator 4.10.3
#
# WARNING! All changes made in this file will be lost!
import sys
from PyQt4 import QtCore, QtGui

try:
    _fromUtf8 = QtCore.QString.fromUtf8
except AttributeError:
    def _fromUtf8(s):
        return s

try:
    _encoding = QtGui.QApplication.UnicodeUTF8
    def _translate(context, text, disambig):
        return QtGui.QApplication.translate(context, text, disambig, _encoding)
except AttributeError:
    def _translate(context, text, disambig):
        return QtGui.QApplication.translate(context, text, disambig)

class Ui_MainWindow(QtGui.QMainWindow):
    def setupUi(self, MainWindow):
        MainWindow.setObjectName(_fromUtf8("MainWindow"))
        MainWindow.resize(800, 600)
        self.centralwidget = QtGui.QWidget(MainWindow)
        self.centralwidget.setObjectName(_fromUtf8("centralwidget"))
        MainWindow.setCentralWidget(self.centralwidget)
        self.menubar = QtGui.QMenuBar(MainWindow)
        self.menubar.setGeometry(QtCore.QRect(0, 0, 800, 23))
        self.menubar.setObjectName(_fromUtf8("menubar"))
        MainWindow.setMenuBar(self.menubar)
        self.statusbar = QtGui.QStatusBar(MainWindow)
        self.statusbar.setObjectName(_fromUtf8("statusbar"))
        MainWindow.setStatusBar(self.statusbar)

        self.retranslateUi(MainWindow)
        QtCore.QMetaObject.connectSlotsByName(MainWindow)

    def retranslateUi(self, MainWindow):
        MainWindow.setWindowTitle(_translate("MainWindow", "MainWindow", None))
    def __init__(self):super(Ui_MainWindow, self).__init__()
app = QtGui.QApplication(sys.argv)

win = Ui_MainWindow()

win.show()

app.exec_()


Done!



  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
PyQt5是一个流行的Python GUI库,可以用于开发图形界面应用程序。关于笔记本电量的问题,PyQt5可以通过调用相关的系统API来获取电池的状态和电池电量信息。 在PyQt5中,可以使用QSystemTrayIcon类来创建系统托盘图标,并通过调用QSystemTrayIcon的相关方法实现获取电池信息并显示在托盘图标上。 首先,我们需要导入PyQt5和相关的模块: ```python from PyQt5.QtWidgets import QApplication, QSystemTrayIcon, QMenu, QAction from PyQt5.QtGui import QIcon from PyQt5.QtCore import Qt, QTimer ``` 然后,我们创建一个QApplication实例和一个QSystemTrayIcon实例: ```python app = QApplication([]) tray_icon = QSystemTrayIcon(QIcon('battery_icon.png'), app) ``` 接下来,我们定义一个函数来获取电池电量信息,并将其显示在托盘图标上: ```python def update_battery_info(): battery_info = app.primaryScreen().virtualSiblings()[0].backendObject().batteryInfo() battery_percentage = battery_info.percent() battery_status = battery_info.state() tray_icon.setToolTip(f'Battery: {battery_percentage}%, Status: {battery_status}') ``` 然后,我们创建一个定时器来定期更新电池电量信息: ```python timer = QTimer() timer.timeout.connect(update_battery_info) timer.start(10000) # 10秒更新一次 ``` 最后,我们在托盘图标上创建一个菜单,并将应用程序与托盘图标关联起来: ```python menu = QMenu() exit_action = QAction('Exit', app) exit_action.triggered.connect(app.quit) menu.addAction(exit_action) tray_icon.setContextMenu(menu) tray_icon.show() app.exec_() ``` 以上代码中的battery_icon.png是一个自定义的电池图标文件,可以根据自己的需求替换。 这样,当我们运行这段代码时,就会在系统托盘中显示一个电池图标,并且会定时更新电池电量信息。当我们单击右键时,会打开一个菜单,可以选择退出应用程序。 希望这个回答对您有帮助!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值