QPushButton按钮

这篇具有很好参考价值的文章主要介绍了QPushButton按钮。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

QPushButton按钮

QPushButton 是 PyQt6 里的按钮控件,这篇教学会介绍如何在 PyQt6 窗口里加入 QPushButton 按钮,并进行一些基本的样式设定,以及设定点击按钮后的行为事件。

快速预览:

  • 加入 QPushButton 按钮]

  • QPushButton 位置设定

  • QPushButton 样式设定

  • 停用 QPushButton

  • QPushButton 点击事件

加入 QPushButton 按钮

建立 PyQt6 窗口物件后,透过 QtWidgets.QPushButton(widget) 方法,就能在指定的控件中建立按钮,下方的程式码执行后,会加入一个 QPushButton 按钮 ,并使用 setText() 方法加入文字。

 from PyQt6 import QtWidgets
 import sys
 ​
 app = QtWidgets.QApplication(sys.argv)
 ​
 Form = QtWidgets.QWidget()
 Form.setWindowTitle('千牛编程思维')
 Form.resize(320, 240)
 ​
 btn = QtWidgets.QPushButton(Form)   # 在 Form 中加入一个 QPushButton
 btn.setText('我是按钮')               # 按钮文字
 ​
 Form.show()
 sys.exit(app.exec())

class 写法

 from PyQt6 import QtWidgets
 import sys
 ​
 class MyWidget(QtWidgets.QWidget):
     def __init__(self):
         super().__init__()
         self.setWindowTitle('千牛编程思维')
         self.resize(320, 240)
         self.ui()
 ​
     def ui(self):
         self.btn = QtWidgets.QPushButton(self)   # 在 Form 中加入一个 QPushButton
         self.btn.setText('我是按钮')               # 按钮文字
 ​
 if __name__ == '__main__':
     app = QtWidgets.QApplication(sys.argv)
     Form = MyWidget()
     Form.show()
     sys.exit(app.exec())

qpushbutton点击事件,QT6教学,ui,pyqt,python,qt

QPushButton 位置设定

透过下列 QPushButton 方法,可以将 QPushButton 控件定位到指定的位置:

方法 参数 说明
move() x, y 设定 QPushButton 在摆放的父控件中的 xy 座标,x 往右为正,y 往下为正,尺寸根据内容自动延伸。
setGeometry() x, y, w, h 设定 QPushButton 在摆放的父控件中的 xy 座标和长宽尺寸,x 往右为正,y 往下为正,如果超过长宽尺寸,预设会被裁切无法显示。

下方的程式码执行后会放入两个 QPushButton,一个使用 move() 定位在 (50,30) 位置,另外一个使用 setGeometry() 方法定位在 (50,60) 的位置并设定大小为 100x50。

 from PyQt6 import QtWidgets
 import sys
 ​
 app = QtWidgets.QApplication(sys.argv)
 ​
 Form = QtWidgets.QWidget()
 Form.setWindowTitle('千牛编程思维')
 Form.resize(320, 240)
 ​
 btn1 = QtWidgets.QPushButton(Form)
 btn1.setText('按钮 1')
 btn1.move(50,30)                 # 移动到 (50,30)
 ​
 btn2 = QtWidgets.QPushButton(Form)
 btn2.setText('按钮 2')
 btn2.setGeometry(50,60,100,50)   # 移动到 (50,60),大小 100x50
 ​
 Form.show()
 sys.exit(app.exec())

class 写法

 from PyQt6 import QtWidgets
 import sys
 ​
 class MyWidget(QtWidgets.QWidget):
     def __init__(self):
         super().__init__()
         self.setWindowTitle('千牛编程思维')
         self.resize(320, 240)
         self.ui()
 ​
     def ui(self):
         self.btn1 = QtWidgets.QPushButton(self)
         self.btn1.setText('按钮 1')
         self.btn1.move(50,30)                 # 移动到 (50,30)
 ​
         self.btn2 = QtWidgets.QPushButton(self)
         self.btn2.setText('按钮 2')
         self.btn2.setGeometry(50,60,100,50)   # 移动到 (50,60),大小 100x50
 ​
 if __name__ == '__main__':
     app = QtWidgets.QApplication(sys.argv)
     Form = MyWidget()
     Form.show()
     sys.exit(app.exec())

qpushbutton点击事件,QT6教学,ui,pyqt,python,qt

QPushButton 样式设定

如果会使用网页 CSS 语法,就能透过 setStyleSheet() 设定 QPushButton 样式,在设计样式上也较为弹性好用,下方的程式码执行后,会套用 CSS 样式语法,将 QPushButton 变成黄底红字黑色外框的样式 ( 不支援 CSS3 相关语法 )。

 from PyQt6 import QtWidgets
 import sys
 ​
 app = QtWidgets.QApplication(sys.argv)
 ​
 Form = QtWidgets.QWidget()
 Form.setWindowTitle('千牛编程思维')
 Form.resize(320, 240)
 ​
 btn = QtWidgets.QPushButton(Form)
 btn.setText('按钮')
 btn.setGeometry(50,50,100,50)
 btn.setStyleSheet('''
     background:#ff0;
     color:#f00;
     font-size:20px;
     border:2px solid #000;
 ''')
 ​
 Form.show()
 sys.exit(app.exec())

class 写法:

 from PyQt6 import QtWidgets
 import sys
 ​
 class MyWidget(QtWidgets.QWidget):
     def __init__(self):
         super().__init__()
         self.setWindowTitle('千牛编程思维')
         self.resize(320, 240)
         self.ui()
 ​
     def ui(self):
         self.btn = QtWidgets.QPushButton(self)
         self.btn.setText('按钮')
         self.btn.setGeometry(50,50,100,50)
         self.btn.setStyleSheet('''
             background:#ff0;
             color:#f00;
             font-size:20px;
             border:2px solid #000;
         ''')
 ​
 if __name__ == '__main__':
     app = QtWidgets.QApplication(sys.argv)
     Form = MyWidget()
     Form.show()
     sys.exit(app.exec())

qpushbutton点击事件,QT6教学,ui,pyqt,python,qt

调整 setStyleSheet() 内容,也能做出类似网页按钮 hover 的样式效果,下方的程式码执行后,当滑鼠移动到按钮上方,按钮就会变色。

 from PyQt6 import QtWidgets
 import sys
 ​
 app = QtWidgets.QApplication(sys.argv)
 ​
 Form = QtWidgets.QWidget()
 Form.setWindowTitle('千牛编程思维')
 Form.resize(320, 240)
 ​
 btn = QtWidgets.QPushButton(Form)
 btn.setText('按钮')
 btn.setGeometry(50,50,100,50)
 btn.setStyleSheet('''
     QPushButton {
         font-size:20px;
         color: #f00;
         background: #ff0;
         border: 2px solid #000;
     }
     QPushButton:hover {
         color: #ff0;
         background: #f00;
     }
 ''')
 ​
 Form.show()
 sys.exit(app.exec())

class 写法:

 from PyQt6 import QtWidgets
 import sys
 ​
 class MyWidget(QtWidgets.QWidget):
     def __init__(self):
         super().__init__()
         self.setWindowTitle('千牛编程思维')
         self.resize(320, 240)
         self.ui()
 ​
     def ui(self):
         self.btn = QtWidgets.QPushButton(self)
         self.btn.setText('按钮')
         self.btn.setGeometry(50,50,100,50)
         self.btn.setStyleSheet('''
             QPushButton {
                 font-size:20px;
                 color: #f00;
                 background: #ff0;
                 border: 2px solid #000;
             }
             QPushButton:hover {
                 color: #ff0;
                 background: #f00;
             }
         ''')
 ​
 if __name__ == '__main__':
     app = QtWidgets.QApplication(sys.argv)
     Form = MyWidget()
     Form.show()
     sys.exit(app.exec())

qpushbutton点击事件,QT6教学,ui,pyqt,python,qt

停用 QPushButton

使用 方法可以「停用」或「启用」QPushButton,停用的 QPushButton 会以「半透明」的方式呈现。setDisabled()

from PyQt6 import QtWidgets
import sys

app = QtWidgets.QApplication(sys.argv)

Form = QtWidgets.QWidget()
Form.setWindowTitle('千牛编程思维')
Form.resize(320, 240)

btn = QtWidgets.QPushButton(Form)
btn.setText('按钮')
btn.setGeometry(50,50,100,50)
btn.setDisabled(True)     # 停用设为 True

Form.show()
sys.exit(app.exec())

class 写法:

from PyQt6 import QtWidgets
import sys

class MyWidget(QtWidgets.QWidget):
    def __init__(self):
        super().__init__()
        self.setWindowTitle('千牛编程思维')
        self.resize(320, 240)
        self.ui()

    def ui(self):
        self.btn = QtWidgets.QPushButton(self)
        self.btn.setText('按钮')
        self.btn.setGeometry(50,50,100,50)
        self.btn.setDisabled(True)

if __name__ == '__main__':
    app = QtWidgets.QApplication(sys.argv)
    Form = MyWidget()
    Form.show()
    sys.exit(app.exec())

qpushbutton点击事件,QT6教学,ui,pyqt,python,qt

如果是使用 setStyleSheet() 方法设定样式,可以从 QPushButton:disabled 的属性设定停用按钮样式

from PyQt6 import QtWidgets
import sys

app = QtWidgets.QApplication(sys.argv)

Form = QtWidgets.QWidget()
Form.setWindowTitle('千牛编程思维')
Form.resize(320, 240)

btn = QtWidgets.QPushButton(Form)
btn.setText('按钮')
btn.setGeometry(50,50,100,50)
btn.setStyleSheet('''
    QPushButton {
        font-size:20px;
        color: #f00;
        background: #ff0;
        border: 2px solid #000;
    }
    QPushButton:disabled {
        color:#fff;
        background:#ccc;
        border: 2px solid #aaa;
    }
''')
btn.setDisabled(True)

Form.show()
sys.exit(app.exec())

class 写法:

from PyQt6 import QtWidgets
import sys

class MyWidget(QtWidgets.QWidget):
    def __init__(self):
        super().__init__()
        self.setWindowTitle('千牛编程思维')
        self.resize(320, 240)
        self.ui()

    def ui(self):
        self.btn = QtWidgets.QPushButton(self)
        self.btn.setText('按钮')
        self.btn.setGeometry(50,50,100,50)
        self.btn.setStyleSheet('''
            QPushButton {
                font-size:20px;
                color: #f00;
                background: #ff0;
                border: 2px solid #000;
            }
            QPushButton:disabled {
                color:#fff;
                background:#ccc;
                border: 2px solid #aaa;
            }
        ''')
        self.btn.setDisabled(True)

if __name__ == '__main__':
    app = QtWidgets.QApplication(sys.argv)
    Form = MyWidget()
    Form.show()
    sys.exit(app.exec())

qpushbutton点击事件,QT6教学,ui,pyqt,python,qt

QPushButton 点击事件

使用 clicked.connect(fn) 方法可以设定 QPushButton 的点击事件,该方法表示「点击按钮时,会执行 fn 函式」,下方的程式码执行后,点击按钮会执行 show 函式,show 函式会不断地将变数 a 增加 1,再透过 QLabel 显示数字。

from PyQt6 import QtWidgets
import sys

app = QtWidgets.QApplication(sys.argv)

Form = QtWidgets.QWidget()
Form.setWindowTitle('千牛编程思维')
Form.resize(320, 240)

a = 0
def show():
    global a
    a = a + 1
    label.setText(str(a))       # 更新 QLabel 内容

label = QtWidgets.QLabel(Form)
label.setText('0')
label.setStyleSheet('font-size:20px;')
label.setGeometry(50,30,100,30)

btn = QtWidgets.QPushButton(Form)
btn.setText('增加数字')
btn.setGeometry(50,60,100,30)
btn.clicked.connect(show)       # 点击时执行 show 函式

Form.show()
sys.exit(app.exec())

class 写法 ( 注意不能使用 show 作为方法名称,会覆写基类的 show 方法造成无法显示 ):

from PyQt6 import QtWidgets
import sys

class MyWidget(QtWidgets.QWidget):
    def __init__(self):
        super().__init__()
        self.setWindowTitle('千牛编程思维')
        self.resize(320, 240)
        self.a = 0    # 设定 a 属性为 0
        self.ui()

    def ui(self):
        self.label = QtWidgets.QLabel(self)
        self.label.setText('0')
        self.label.setStyleSheet('font-size:20px;')
        self.label.setGeometry(50,30,100,30)

        self.btn = QtWidgets.QPushButton(self)
        self.btn.setText('增加数字')
        self.btn.setGeometry(50,60,100,30)
        self.btn.clicked.connect(self.showNum)  # 点击时执行 showNum 方法

    # 注意不能使用 show 作为 class 内部方法的名称
    def showNum(self):
        self.a = self.a + 1
        self.label.setText(str(self.a))   # 更新 QLabel 内容

if __name__ == '__main__':
    app = QtWidgets.QApplication(sys.argv)
    Form = MyWidget()
    Form.show()
    sys.exit(app.exec())

qpushbutton点击事件,QT6教学,ui,pyqt,python,qt

如果要执行的函式带有「参数」,则可以使用 lambda 匿名函式处理,下方的程式码执行后,点击 A 按钮就会出现 A 文字,点击 B 按钮就会出现 B 文字。

from PyQt6 import QtWidgets
import sys

app = QtWidgets.QApplication(sys.argv)

Form = QtWidgets.QWidget()
Form.setWindowTitle('千牛编程思维')
Form.resize(320, 240)

def show(e):
    label.setText(e)   # 显示参数内容

label = QtWidgets.QLabel(Form)
label.setText('A')
label.setStyleSheet('font-size:20px;')
label.setGeometry(50,30,100,30)

btn1 = QtWidgets.QPushButton(Form)
btn1.setText('A')
btn1.setGeometry(50,60,50,30)
btn1.clicked.connect(lambda:show('A'))  # 使用 lambda 函式

btn2 = QtWidgets.QPushButton(Form)
btn2.setText('B')
btn2.setGeometry(110,60,50,30)
btn2.clicked.connect(lambda:show('B'))  # 使用 lambda 函式

Form.show()
sys.exit(app.exec())

class 写法 ( 注意不能使用 show 作为方法名称,会覆写基类的 show 方法造成无法显示 ):文章来源地址https://www.toymoban.com/news/detail-741274.html

from PyQt6 import QtWidgets
import sys

class MyWidget(QtWidgets.QWidget):
    def __init__(self):
        super().__init__()
        self.setWindowTitle('千牛编程思维')
        self.resize(320, 240)
        self.ui()

    def ui(self):
        self.label = QtWidgets.QLabel(self)
        self.label.setText('A')
        self.label.setStyleSheet('font-size:20px;')
        self.label.setGeometry(50,30,100,30)

        self.btn1 = QtWidgets.QPushButton(self)
        self.btn1.setText('A')
        self.btn1.setGeometry(50,60,50,30)
        self.btn1.clicked.connect(lambda:self.showText('A'))  # 使用 lambda 函式

        self.btn2 = QtWidgets.QPushButton(self)
        self.btn2.setText('B')
        self.btn2.setGeometry(110,60,50,30)
        self.btn2.clicked.connect(lambda:self.showText('B'))  # 使用 lambda 函式

    # 注意不能使用 show 作为 class 内部方法的名称
    def showText(self, text):
        self.label.setText(text)

if __name__ == '__main__':
    app = QtWidgets.QApplication(sys.argv)
    Form = MyWidget()
    Form.show()
    sys.exit(app.exec())

到了这里,关于QPushButton按钮的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • QPushButton按钮控件常用信号,双击,单击等。

    想要了解QT中的QPushButoon类必须先了解QT的大致继承关系,这样我们才能更好的实现或者了解QPushButton按钮控件,大致继承关系如下: 我们可以看到QpushButton继承自—QAbstractButton继承自----QWidget。 这样我们就可以查找我们想要实现的功能相关信息。 单击信号:checked。 虽然我们

    2024年02月16日
    浏览(48)
  • QT设置QPushButton样式

       

    2024年02月07日
    浏览(52)
  • QT中对于QPushButton样式的调整

    前段时间在调软件的样式,学到了些新的东西,也碰到了些问题,这里做一下记录。 这篇博客主要实现的目标就如标题所示。 随便建一个项目,建一个资源包,导入一个资源图片。 这样我们想要的基本元素就有了,文字和按钮图标。 因为我下载的图片元素比较大,所以我这

    2024年04月28日
    浏览(36)
  • QT6实现按钮双击事件

    实现思路:利用事件过滤器实现按钮双击功能,主要是通过调用installEventFilter函数和重写事件eventFilter函数实现。   1、创建项目 启动Qt Creator,在主菜单的[文件]下,打开[新建文件或项目]菜单,弹出新建文件或项目对话框,创建Qt Widgets Application 项目,在Class Information步骤中

    2024年02月12日
    浏览(45)
  • Qt通过QSS设置QPushButton的样式

    为了美化界面,有时候需要修改QPushButton的样式,让一个QPushButton上面既要显示图标,又要显示文字内容 起初我的做法是重写QPushButton,这样做可以实现,但是有几个问题 实现比较繁琐 每次使用UI编辑器设计界面的时候,对每一个QPushButton都要做一次提升 为了解决上面的问题

    2024年02月13日
    浏览(47)
  • Qt 之 QPushButton,信号与槽机制

    当我们开发基于Qt框架的图形用户界面(GUI)应用程序时,经常需要在界面上添加按钮来实现用户交互。Qt提供了一个名为 QPushButton 的类作为按钮控件的实现。QPushButton是Qt中的标准按钮类,旨在简化按钮的创建和使用。 头文件 :#include QPushButton QPushButton 用于 接受用户点击事

    2024年02月12日
    浏览(49)
  • Qt——QPushButton控件的常见属性、方法和信号

    一、QPushButton控件常见属性 二、QPushButton控件常见方法 三、QPushButton控件常见信号 1. text: 描述:按钮上显示的文本。 用法: 2. setStyleSheet 描述:用于设置控件的样式表 用法: 3. icon: 描述:按钮上显示的图标。 用法: 4. resize: 描述:重置按钮大小。 用法: 5. move: 描述:移动

    2024年02月10日
    浏览(38)
  • 有几种方法修改QPushButton的大小、文字颜色等属性?(Qt面试题)

    使用 setFixedSize(width, height)函数 :可以直接调用QPushButton的setFixedSize函数,将所需的宽度和高度作为参数传递给它。这将固定按钮的大小,并防止其自动调整大小以适应其内容。 使用 setGeometry(x, y, width, height)函数 :setGeometry函数可以设置QPushButton的位置和大小。通过设置按钮的

    2024年02月13日
    浏览(39)
  • element-ui中Notification 通知自定义样式、按钮及点击事件

    Notification 通知用于悬浮出现在页面角落,显示全局的通知提醒消息。         element-ui官方文档中说明Notification 通知组件的 message  属性支持传入 HTML 片段,但是示例只展示了简单的html片段,通常不能满足开发中的更深入需要,比如我需要把通知弹框添加按钮、复选框,尤其

    2024年02月14日
    浏览(93)
  • 关于在Qt中tableWidget表格中有按钮或者chebox选择点击事件

    这里以checkbox为例: 基本思路:使用槽函数监听checkBox的改变,获取点击checkBox所在的行数和列数 槽函数

    2024年02月05日
    浏览(47)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包