爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 12923|回复: 5

[混合编程] PyQt之Qt设计师初体验

[复制链接]

新浪微博达人勋

发表于 2020-4-15 14:22:11 | 显示全部楼层 |阅读模式

登录后查看更多精彩内容~

您需要 登录 才可以下载或查看,没有帐号?立即注册 新浪微博登陆

x
使用python的PyQt5设计软件界面,会用到一个类似PS或工程制图的工具---Qt设计师,这个工具的神奇之处,在于将“写代码设计界面”与“键鼠操作设计界面”结合了起来------
Qt设计师制作的界面可以生成.ui的文本文件,.ui可转换为.py文件,然后用代码进一步操作。
在python或anaconda的安装目录中可以搜索到designer.exe,这就是“Qt设计师”了
360截图20200415134707213.jpg

双击打开,会出现类似PS的界面:
1.jpg

点击“新建”,会出现“新建窗体”对话框,其中Widget是通用窗口,Main Window是主窗口:
2.jpg
双击Main Window,出现窗口,接着保存并命名,这时对象查看器中默认添加了菜单栏、工具栏和状态栏:
3.jpg
工具箱Widget Box装的是控件,可直接拖入主窗口:
4.jpg
根据字面意思和经验,把玩一番,凑了个界面:
360截图20200415093827675.jpg
点击[窗体]-[预览]可查看效果,区别在于预览图中滑动条、按钮和方向盘都是可操作的:
预览效果.jpg
点击控件后(非预览状态),在右侧中部“属性编辑器”中,该空间的属性变为绿色,属性可修改:
5.jpg
QWidget属性中,maximumSize控制窗口最小尺寸,maximumSize控制窗口最大尺寸,如果将这2者设置成一样则窗口尺寸固定。
字体设置:
6.jpg
软件标题、图标(可上传本地图片)和透明度:
7.jpg
信号/槽编辑器为控件添加、编辑信号、槽函数:
资源浏览器可为控件添加图片(不过资源好像是.qrc格式)
注意:在设计UI的过程中要保存,对应的.ui文件才会保存更新内容

----------与IDL的效率对比----------

去年写了个IDL的软件界面,我只会使用编程形式设计,光是安排控件位置的计算就比较繁琐,修改位置更是灾难。
我不知道IDL是否有Qt设计师这种交互工具,目前我所知的用IDL设计界面最方便的方式就是copy它内置的例子和demo了。
虽然IDL有GUI工具,但版权图标不好换,设计元素也欠缺。IDL虽然功能强大,但用IDL做的软件不能只是心灵美,
毕竟,当下是看脸的时代,颜狗遍地,炫酷的外观是至关重要的


评分

参与人数 1金钱 +15 贡献 +3 收起 理由
mofangbao + 15 + 3

查看全部评分

密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2020-4-15 14:49:04 | 显示全部楼层
-----------------.ui转.py-----------------




附件中timg.png是我DIY的icon。
附件ui2py.py是.ui转.py的工具,使用方法是:将若干.ui文件和该文件放在同一目录,执行ui2py.py即可生成对应的同名的py文件,转换的结果是类和函数,需要加上执行代码,方可呈现出界面,与在Qt设计师中的预览效果是一样的:
if __name__ == "__main__":
    import sys
    app = QtWidgets.QApplication(sys.argv)
    MainWindow = QtWidgets.QMainWindow()
    ui = Ui_MainWindow()
    ui.setupUi(MainWindow)
    MainWindow.show()
    sys.exit(app.exec_())

360截图20200415144701477.jpg

timg.png

firstMainWin.ui

9.7 KB, 下载次数: 2, 下载积分: 金钱 -5

firstMainWin.py

10.43 KB, 下载次数: 4, 下载积分: 金钱 -5

ui2py.py

884 Bytes, 下载次数: 4, 下载积分: 金钱 -5

密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

发表于 2020-4-15 14:54:19 | 显示全部楼层
谢谢分享。
亲身体验过。用Qt Designer能够省去大量界面设计的工作。借助于信号和槽函数,连接后台函数和前端的操作。非常方便,效率很高。
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

 楼主| 发表于 2020-4-15 15:06:44 | 显示全部楼层
平流层的萝卜 发表于 2020-4-15 14:54
谢谢分享。
亲身体验过。用Qt Designer能够省去大量界面设计的工作。借助于信号和槽函数,连接后台函数和 ...

同道中人啊!.....
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

 楼主| 发表于 2020-4-15 15:22:27 | 显示全部楼层
------------界面文件的使用方法------------

从.ui转来的.py文件称为“界面文件”,内容是个类;调用界面文件的py文件叫做“逻辑文件”或者“业务文件”,这样就是“显示和逻辑业务的分离”。
界面文件的使用方法是新建对象继承界面文件的主窗口类


import sys         
from PyQt5.QtWidgets import QApplication , QMainWindow
from firstMainWin import *
class MyMainWindow(QMainWindow, Ui_MainWindow):
    def __init__(self, parent=None):   
        super(MyMainWindow, self).__init__(parent)
        self.setupUi(self)
if __name__=="__main__":  
    app = QApplication(sys.argv)  
    myWin = MyMainWindow()  
    myWin.show()  
    sys.exit(app.exec_())  


密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

 楼主| 发表于 2020-4-17 11:17:51 | 显示全部楼层
---------UI设计构想---------


UI 的设计,未必需要自己从头做,网上有很多素材可以拿过来改改
界面的设计最好利用大家比较熟悉的经典款式,再略做创新
我的目的是做一个数据分析的软件,那么软件界面的风格需要具有数字化风格
浏览了几个网站,感觉这个灯具广告界面就挺好:极简主义,光线低调又不暗,隐隐透着奢华,有种滑动手机屏幕的感觉


360截图20200417110653305.jpg


来源:http://www.cndesign.com/opus/27617cd9-6f5a-402c-be89-ab0300ac556d.html
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

Copyright ©2011-2014 bbs.06climate.com All Rights Reserved.  Powered by Discuz! (京ICP-10201084)

本站信息均由会员发表,不代表气象家园立场,禁止在本站发表与国家法律相抵触言论

快速回复 返回顶部 返回列表