`
schi
  • 浏览: 205308 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

PyQt4 basic

阅读更多
很久没用过PyQt了,以前也没怎么学,现在我打算从新学习Qt。
PyQt有不少模块,使用比较频繁的就是QtCore和QtGui了
  • QtCore: 是包含了非GUI的核心类,包括qt的信号和槽事件循环,共享内存,用户设置等等。
  • QtGui: 包含了绝大部分的GUI类。

让我们来看看如何来编写一个GUI程序吧
# 导入QtGui模块
import PyQt4.QtGui as QtGui

if __name__ == "__main__":
    # 导入sys模块,你也可以在一开始就导入
    import sys
    
    # 创建一个QApplication对象,它接收的是一个列表参数
    # 通常是sys.argv
    app = QtGui.QApplication(sys.argv)
    # 创建一个QLabel控件
    label = QtGui.QLabel("Hello PyQt!")
    # 显示QLabel控件
    label.show()
    # 进入主循环,直到程序退出
    sys.exit(app.exec_())

执行后,你会看到



我们把
label = QtGui.QLabel("Hello PyQt!")

改成
label = QtGui.QLabel("<h2><i>Hello</i> \
                       <font color=red>PyQt!</font></h2>!")

你会看到



可见,你可以使用HTML的样式来使得你的程序更丰富多彩
接下来我们来看一下链接的建立,我们创建一个由一个按钮构成的程序,当你点击这个按钮时程序就会退出
from PyQt4 import QtCore
from PyQt4 import QtGui

if __name__ == "__main__":
    import sys

    app = QtGui.QApplication( sys.argv )
    # 创建一个QPushButton控件
    button = QtGui.QPushButton( "Quit" )
    # 创建QPushButton和app的连接
    QtCore.QObject.connect( button, 
                            QtCore.SIGNAL( "clicked()" ), 
                            app, QtCore.SLOT( "quit()" ) )
    # 显示QPushButton控件
    button.show()

    sys.exit( app.exec_() )

当你单击Quit按钮时,它会发射一个"clicked()"信号,信号可以和槽(函数)进行链接,以便信号发射时,槽会自动执行
链接的创建也可以这样来写
button.clicked.connect( app.quit )

这样比上面传统的清晰、简洁多了

接下来我们来看看如何布局我们的窗口控件。
我们创建一个由:QSpinBox、QSlider和QWidget组成的窗口。当你拖动QSlider时QSpinBox的数值随之变化,当你改变QSpinBox的数值时,QSlider也随之变化。
from PyQt4 import QtCore
from PyQt4 import QtGui

if __name__ == "__main__":
    import sys

    app = QtGui.QApplication( sys.argv )

    # 创建QWidget,也就是我们的窗口
    window = QtGui.QWidget()
    # 设置窗口的名称
    window.setWindowTitle( "Enter Your Age" )

    # 创建spinBox
    spinBox = QtGui.QSpinBox()
    # 创建QSlider,我们要的是横向的,
    # 使用QtCore.Qt.Horizontal来定义
    slider = QtGui.QSlider( QtCore.Qt.Horizontal )
    spinBox.setRange( 0, 130 )	# 设置数值范围
    slider.setRange( 0, 130 )	# 设置数值范围

    # 创建连接
    spinBox.valueChanged.connect( slider.setValue )
    slider.valueChanged.connect( spinBox.setValue )

    # 设置一个数值
    spinBox.setValue( 35 )

    # 创建QHBoxLayout布局
    layout = QtGui.QHBoxLayout()
    # 将控件加入到布局
    layout.addWidget( spinBox )
    layout.addWidget( slider )
    # 将窗口的布局设置为layout
    window.setLayout( layout )

    window.show()

    sys.exit( app.exec_() )




根据C++ GUI Qt4编程(第二版)第一章编写的,希望对你有帮助
  • 大小: 1.6 KB
  • 大小: 2.3 KB
  • 大小: 2.5 KB
分享到:
评论

相关推荐

    PyQt视频教程(下载自YouTube)

    01 - Intro basic GUI - PyQt with Python GUI Programming tutorial.mp4 02 - Application Structure - PyQt with Python GUI Programming tutorial.mp4 03 - Buttons - PyQt with Python GUI Programming tutorial...

    PyQt5源码.rar

    包含基本PYQT5所有示例源代码,其中有basic示例、calendar_time、containers、controls、designer、dialogs、drapclip、drawing、 ext、layout、menu_toolbar_statusbar、multithread等等

    Introduction to Python Programming and Developing GUI Applications with PyQT

    The given document refers to PyQt4, which was the version of PyQt that was current at the time of publication in 2012. PyQt4 includes several modules, each providing different functionalities: - **...

    VideoPlay Python PyQt 实现视频播放器

    除了PyQt之外,为了播放视频,你可能还需要一个解码器包,如在文件列表中的`K-Lite_Codec_Pack_1794_Basic.exe`,这是一个常见的Windows平台上用于安装多种媒体编解码器的工具,确保Python的多媒体模块能够识别并...

    Pyqt5(Eric6)抓取天气用PPT结合四川地图演播

    宏是VBA(Visual Basic for Applications)编程的一部分,允许我们在Microsoft Office应用程序中自动化任务。在这里,我们编写了一个VBA宏,它可以解析txt文件中的天气数据,然后根据这些数据更新PPT幻灯片的内容,...

    2_basic_main_window_QGIS二次开发_qgis_

    4. **主窗口构造**:"2_basic_main_window"可能涵盖如何创建QGIS应用的基本框架,包括设置菜单、工具栏、视图和事件处理。这涉及到对QGIS主窗口类`QgisApp`的继承和自定义。 5. **图层管理**:在QGIS中,图层是数据...

    probe_basic:LinuxCNC机器控件的用户界面

    文献资料安装开发安装QtPyVCP使用文档资源 (#hazzy)(隔离) (#qtpyvcp:matrix.org)(桥接) (桥接) (桥接)依存关系 Python 2.7 PyQt5或PySide2 Probe Basic是使用LinuxCNC Debian 9 x64(拉伸) 和Ubuntu ...

    python调用海康sdk开图demo软件

    "BasicDemo"可能就是一个简单的演示程序,展示了如何初始化SDK、连接设备、打开通道并获取视频流的基本步骤。 1. **安装和配置**:在使用Python调用SDK前,需要确保已正确安装了Python3,并且将HIKVision SDK的库...

    基于Python的Excel文档合并系统的设计与实现.pdf

    本文介绍了基于Python语言开发的Excel文档合并系统的设计与实现,系统使用PyQt4作为图形用户界面(GUI)开发平台,并结合xlrd和xlwt模块实现Excel文档的数据合并与格式转换功能。文章首先指出了在日常工作和学习中,...

    矿井勘探眼无线监测系统设计

    本系统采用了基于Visual Basic、Visual C++等编程语言的串口通信组件,例如VB中的MSCOMM控件进行串口通信的编程实现。 2. 上位机监控软件设计:监控软件是系统的核心,负责展示实时数据、历史数据、报警信息和生成...

    音乐播放器

    在VB(Visual Basic)编程环境下,开发一个音乐播放器是一个相当基础但有趣的项目,它可以让你学习到许多关于文件操作、事件处理以及用户界面设计的知识。下面将详细解释这个项目涉及的关键知识点。 首先,你需要...

    禁用窗体关闭按钮

    在VB(Visual Basic)编程中,有时为了特定的需求,我们可能需要禁用窗体的关闭按钮,例如在用户未保存数据或执行特定操作时防止他们意外退出程序。本知识点将详细讲解如何通过调用API(应用程序接口)函数来实现这...

    Python+Qt5+Pycharm 界面设计指导.docx

    - Qt Designer 是 Qt5 中的一个工具,允许通过拖放方式设计用户界面,类似于 Visual Basic。 - 在 Python 中使用 Qt5,通常需要 PyQt5 库,它将 Qt5 的 C++ API 转换为 Python 可用的形式。 4. **安装步骤**: -...

    QQ无边框拖动和挂边效果

    在VB(Visual Basic)环境中,我们可以实现类似的特性来提升应用程序的用户体验。 首先,让我们了解"无边框拖动"。在Windows API中,一个窗口通常有标准的边框和标题栏,用户可以通过这些元素来拖动窗口。然而,...

    ActiveX测试容器最新版(可支持Python脚本)

    对于VBScript,这是一种基于Visual Basic的脚本语言,广泛应用于早期的网页和Windows应用程序中,其语法简洁,易于学习。 然而,更重要的是,这个最新版的ActiveX测试容器引入了对Python脚本的支持。Python是一种...

    basic-python-clock:这是python中工作时钟的基本代码。 -用Microsoft Visual Studio写

    4. **格式化输出**:使用`strftime()`方法可以将时间对象转换为用户友好的字符串格式,例如`'%H:%M:%S'`表示24小时制的小时:分钟:秒。 5. **事件驱动编程**:在Visual Studio中,如果这个时钟是GUI应用,可能使用了...

    Basic-Camera-Based-Music-Player-Controller:可以识别用户在相机前面做出的手势方向的应用程序

    4. **Python库的使用**:除了OpenCV,可能还会用到NumPy进行数值计算,Pandas进行数据处理,以及matplotlib进行可视化。如果涉及到深度学习,TensorFlow或PyTorch等框架也可能被使用。 5. **实时处理**:为了实现...

    Python+Qt5+Pycharm 界面设计.docx

    Qt Designer是Qt5的一部分,它允许用户通过拖放方式设计GUI界面,就像在Visual Basic中那样。对于没有深厚编程基础的小白来说,这是一个非常有用的工具。PyQt5是Python绑定Qt5库的方式,使得Python程序能够利用Qt5的...

    Password-Controlled-Basic-Personel-Database:我在SQlite的第一个项目。 您可以存储员工,学生等的个人数据。 开放发展

    总的来说,"Password-Controlled-Basic-Personel-Database"项目提供了一个实用的个人数据管理解决方案,结合了SQLite的简洁高效与Python的易用性,为初学者提供了一个学习数据库管理和编程的优秀实践案例。...

    Rapid GUI Programming with Python and Qt

    Chapter 4. Introduction to GUI Programming 126 A Pop-Up Alert in 25 Lines 127 An Expression Evaluator in 30 Lines 131 A Currency Converter in 70 Lines 136 Signals and Slots 142 Summary 151 ...

Global site tag (gtag.js) - Google Analytics