Qt对小部件样式和主题的支持使您的应用程序能够适应本机桌面环境。

在本教程中,我们将向您展示如何使用Qt for Python处理信号和插槽。Signals和slot是一个Qt特性【也可以说信号和插槽是QT的灵魂】,它允许图形小部件与其他图形小部件或python代码通信。我们的应用程序创建了一个按钮,记录点击的按钮,你好!每次单击python控制台时都会显示一条消息。

我们先导入必要的PySide6类和python sys模块:

import sys
from PySide6.QtWidgets import QApplication, QPushButton
from PySide6.QtCore import Slot

我们还要创建一个python函数,将消息记录到控制台:

# Greetings【您好】
@Slot()
def say_hello():print("单击按钮, Hello!")

注意

@Slot()是一个将函数标识为插槽的装饰器。现在弄清它的原理并不重要,但要经常使用它来避免意外行为。

现在,如前面的示例所述,您必须创建QApplication来运行PySide6代码:

# Create the Qt Application
app = QApplication(sys.argv)

让我们创建clickable按钮,这是一个QPushButton实例。为了标记按钮,我们将一个python字符串传递给构造函数:

# Create a button
button = QPushButton("Click me")

在显示按钮之前,我们必须将它连接到前面定义的say_hello()函数。有两种方法可以做到这一点;使用旧的方式或新的方式。让我们在这种情况下使用新的书写方式。您可以在PySide6 Wiki页面的Signalsslot中找到关于这两种方式的更多信息。

QPushButton有一个预定义的信号,称为clicked,每次单击按钮时都会触发该信号。我们将此信号连接到say_hello()函数:

# Connect the button to the function
button.clicked.connect(say_hello)

最后,我们显示按钮并启动Qt主循环:

# Show the button
button.show()
# Run the main Qt loop
app.exec()

以下是此示例的完整代码:

#!/usr/bin/pythonimport sys
from PySide6.QtWidgets import QApplication, QPushButton
from PySide6.QtCore import Slot@Slot()
def say_hello():print("Button clicked, Hello!")# Create the Qt Application
app = QApplication(sys.argv)
# Create a button, connect it and show it
button = QPushButton("Click me")
button.clicked.connect(say_hello)
button.show()
# Run the main Qt loop
app.exec()

以下是真实环境试验代码:

# This Python file uses the following encoding: utf-8
import sys
import PySide6.QtCore
from PySide6 import QtWidgets
from PySide6.QtWidgets import QApplication, QWidget, QPushButton, QLabel
from PySide6.QtGui import QIcon
from PySide6.QtCore import Slot@Slot(QLabel)
def say_hello(labelx):# print("Button clicked, Hello!")labelx.setText("您好小蜘蛛!")class button(QWidget):def __init__(self):QWidget.__init__(self)if __name__ == "__main__":app = QApplication([])window = button()window.setWindowIcon(QIcon('img/Search.ico'))window.setWindowTitle("开软网络爬虫项目")window.setFixedSize(600, 400)  # 设置窗口固定大小main_widget = QtWidgets.QWidget()main_layout = QtWidgets.QVBoxLayout()labelQ = QLabel("亲爱的 老公想你了")labelQ.setAttribute(PySide6.QtCore.Qt.WA_StyledBackground, True)labelQ.setStyleSheet('background-color: red; font-size:40px;')labelQ.setAlignment(PySide6.QtCore.Qt.AlignCenter)buttonQ = QPushButton("Click me")buttonQ.clicked.connect(lambda: say_hello(labelQ))main_layout.addWidget(labelQ)main_layout.addWidget(buttonQ)window.setLayout(main_layout)window.show()sys.exit(app.exec())

以下是试验截图:

PySide6使用简单按钮相关推荐

  1. Py之wxPython:利用wxPython设计GUI界面(图片背景+简单按钮)

    Py之wxPython:利用wxPython设计GUI界面(图片背景+简单按钮) 目录 实现界面 实现代码 实现界面 实现代码 import wxclass MyPanel(wx.Panel):def ...

  2. html按钮按下效果_如何用HTML实现简单按钮样式

    本篇文章主要给大家介绍如何用HTML实现简单的按钮样式. 在网页设计过程中,按钮的设置可以说是最为常见且基础的一项html/css知识技能. 程序猿的生活:打造全网web前端全栈资料库(总目录)看完学 ...

  3. 免费素材下载:超酷的简单按钮UI

    日期:2012-4-23  来源:GBin1.com 今天分享一套来自alessioatzeni的超棒简单按钮UI,包含了2个主题的5个类型的按钮.提供了PSD格式的下载,所有的元素都是矢量格式,你可 ...

  4. Flex4 Skinning 1: 自定义一个简单按钮的皮肤

    Flex4使得改变应用程序的外观变得异常简单,这主要归功于新的皮肤框架(skinning architecture),通过它我们可以将组件中的可视化元素和逻辑完全分离.也正因为这个思想的引导,我们可以 ...

  5. Flash 与 C#交互 (简单按钮事件)

    1.工具栏 >右键  >选择项 >添加COM组件 > 浏览 C:\Windows\System32\Macromed\Flash 对应的FLASH OCX 添加. 2.把工具栏 ...

  6. QT Creator应用程序开发——01简单按钮显示

    目录 前言 一.新建项目 二.设计ui页面和编写程序 (一)设计ui页面 1.设置按钮 2.设置标签 3.设置转到槽 (二)编写程序 (三)构建运行 (三)测试 结语 前言 本系列文章,是经博主的QT ...

  7. C#委托、事件学习之(二)——简单按钮委托事件

    一.打开Form.cs文件,写入3个一般形式的EventArgs事件show1(),show2(),show3(). using System; using System.Windows.Forms; ...

  8. 【科研】Pyside6

    1.展示第三包 pip show pyside6 2.下载pyside6时 ,可以不用区分大小写 这就好了 写一个hello world # 写一个简单的hello world import sys ...

  9. html按钮按下效果_您应该在网站中尝试的8种惊人的HTML按钮悬停效果,让您的网站令人难忘...

    HTML按钮悬停效果简介 按钮是每个页面,Web应用程序或移动应用程序中经常使用的基本HTML元素. HTML按钮是布局中非常重要的元素,因为在很多情况下,它是用户在呼吁采取行动并说服单击时必须注意到 ...

最新文章

  1. Android JNI简单实例(android 调用C/C++代码)
  2. 【图像超分辨率】SR for RS via Local–Global Combined Network
  3. php substr_replace 中文乱码,php substr_replace替换字符串一些实例_PHP教程
  4. srsLTE源码学习:协议数据单元PDU:pdu.h
  5. python和excel能结合应用吗_通过Python在Excel中使用机器学习
  6. C语言之预处理探究(一):宏
  7. python pickle模块的使用/将python数据对象序列化保存到文件中
  8. 【报告分享】2021年微信视频号生态趋势调查报告.pdf(附下载链接)
  9. windows加密和linux加密_Windows系统自带的BitLocker加密方法
  10. 曝微软将发布基于 Excel 的低代码语言:Power Fx
  11. Java基础笔记(二)垃圾回收机制
  12. android下拉刷新listView剖析
  13. 太厉害了MySQL总结的太全面了
  14. 苹果手机长截屏_涨知识了!原来苹果手机也可以长截屏,还不知道的,快来学一学...
  15. ThinkPad P73 拆机清灰日志
  16. 安卓基础之ContentProvider
  17. 如何管理计算机回收站,回收站功能多多 教你如何玩转回收站
  18. HTML:利用canvas画定位图标
  19. VMware虚拟机win10系统桥接模式连不上网
  20. django-haystack 对 多对多字段( ManyToManyField )进行索引

热门文章

  1. 关于python浮点数类型错误的是_关于 Python 的数字类型,以下选项中描述错误的是( )...
  2. 信息安全系统设计基础第八周总结
  3. Android插件化入门指南,系列篇
  4. dovecot MySQL配置_Dovecot配置笔记
  5. 网页自动弹出新网页代码
  6. 贝曲西班,Betrixaban,CAS: 330942-05-7,活性氧分子
  7. 基于springboot教师人事档案管理系统
  8. 荐一份 Android 代码规范建议文档
  9. 销售员哪些说话方式受欢迎?
  10. Transferable 在 SwiftUI 中实现拖放的初体验 Swift 中的游戏规则改变者协议(教程含源码)