鱼C论坛

 找回密码
 立即注册
查看: 11525|回复: 7

[技术交流] 温故而知新---PyQt5学习笔记系列---初步实践。

[复制链接]
发表于 2015-5-10 13:32:57 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x

1. 加载必须的模块。
import sys
from PyQt5.QtWidgets import *
呃,sys非必须。
QtWidgets
contains classes that provide a set of UI elements to create classic desktop-style user interfaces.
提供一个设置UI元素的桌面风格接口。(渣翻译。)

2.继承父类。
class Main(QWidget):
    def __init__(self, parent=None):
        super(Main, self).__init__(parent)
继承窗口父类QWidget。

3.给窗口来一发标题。
self.setWindowTitle("Hello Qt.")

跑起来看看这是个啥样子滴。
if __name__ == '__main__':
    app = QApplication(sys.argv)
    main = Main()
    main.show()
    sys.exit(app.exec_())
有可能这个窗口会被其他文件调用,所以写在if '__name__' == '__main__'里比较好。
app = QApplication(sys.argv)这是每一个QT窗口必须加载的,其中sys.argv参数可以写成[],它接受一个列表。
sys.argv的意思是在命令行下的 -m -a 什么的这些命令的列表集合。

不过传的这些值是如何处理的暂时没找到方法。
问题待解决。

1.jpg
已经发现标题了。

4.再来一发图标。
这里还要加载一个模块。
from PyQt5.QtGui import *
contains classes for windowing system integration, event handling, 2D graphics, basic imaging, fonts and text. It also containes a complete set of OpenGL and OpenGL ES bindings (see Support for OpenGL). Application developers would normally use this with higher level APIs such as those contained in the QtWidgets module.
它是一个包含窗口系统接口,时间处理,2D图形,基础图片,字体和文本的类。它也包含了完整的设置OpenGL和OpenGL ES(详细看对OpenGL的支持)。这是应用开发者正常情况下使用最多的一个API,比如它包含QtWidgets模型。
(渣翻译。。)
self.setWindowIcon(QIcon('pic/a.jpg'))
QIcon支持哪些格式没试全,文档上也没找到有写的(可能我漏掉了),
附文档http://doc.qt.io/qt-5/qicon.html

总之,以后只要设置Icon基本都用到QIcon,其他的格式他不认识。
4.1 默认有点大,缩小一下。
self.resize(300, 200)
Q: 不想让他在中间,有办法嘛?
A: 当然有啦~~(木有我就不会写了- -。 )
self.move(500, 600)
绝对位置,相对于父窗口,这个窗口的父窗口也就是桌面啦。
Q: 有木有一条就可以设置这俩的?
A: 必须有。
self.setGeometry(500, 600, 300, 200)

小Tip,偷懒不想看文档或者help,又想知道这个函数到底能传神马值进去,只要故意让他报错就可以了。
    self.setGeometry(500, 600, 300)
TypeError: arguments did not match any overloaded call:
  QWidget.setGeometry(QRect): argument 1 has unexpected type 'int'
  QWidget.setGeometry(int, int, int, int): not enough arguments
故意少写一个发现他还可以只接受一个QRect的参数,那QRect是个神马玩意?
完整: http://doc.qt.io/qt-5/qrect.html#details
简易: The QRect class defines a rectangle in the plane using integer precision.
QRect类定义了一个矩形平面的整数精度。
呃,意思貌似是把上面那串数字给封装一下嘛。
用它还得加载一个模块。
from PyQt5.QtCore import *
self.setGeometry(QRect(500, 600, 300, 200))
效果一样嘛,真是,浪费时间。
不过他的存在还是有意义滴,啥意义,
以后再说!(小甲鱼老师课件里偷来的话~~,其实我也不知道。。你知道的话告诉我呦~~。)


一些资料:
点我
还有我

本帖被以下淘专辑推荐:

  • · PyQt|主题: 45, 订阅: 73
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2015-5-10 16:57:04 From FishC Mobile | 显示全部楼层
好详细,赞一个
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2015-10-24 21:26:19 | 显示全部楼层
NameError: name 'QtWidget' is not defined

sys error
别的提示没了,完全一模一样的无法运行,后来可以运行了,但是不显示任何东西:smile
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2015-10-24 21:34:02 | 显示全部楼层
NameError: name 'QtWidget' is not defined
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2015-10-24 21:37:11 | 显示全部楼层
本帖最后由 ZZWZZ 于 2015-10-24 21:40 编辑

这QtWidget不可以  ,是QWidget,以纠正抱歉,问题在下楼

class Main(PyQt5.QtWidgets.QtWidget):
NameError: name 'PyQt5' is not defined
>>>
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2015-10-24 21:39:48 | 显示全部楼层
本帖最后由 ZZWZZ 于 2015-10-24 21:41 编辑

if ‘__name__’=='__main__':

这样不可以



if __name__=='__main__':

这样可以
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-3-9 16:45:08 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2018-8-28 10:10:29 | 显示全部楼层
详细,顶一个
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-22 08:32

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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