国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

【PyQt】11-QTextEdit、QPushButton

這篇具有很好參考價(jià)值的文章主要介紹了【PyQt】11-QTextEdit、QPushButton。希望對大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。


前言

1、展示文本輸入框的使用。
2、幾種按鍵的使用方法。
3、單選按鍵時(shí)候,狀態(tài)切換的槽函數(shù)怎么寫。


一、文本輸入-QTextEdit

1.1 代碼

'''
#Author :susocool
#Creattime:2024/2/14
#FileName:023-QtextEdit多行輸入文本
#Description: 

'''

from PyQt5.QtWidgets import *
import sys

class QTextEditDemo(QWidget):
    def __init__(self):
        super(QTextEditDemo, self).__init__()
        self.initUI()

    def initUI(self):
        self.setWindowTitle('多行文本輸入')
        self.resize(300,200)

        self.textEdit = QTextEdit()
        self.buttonText = QPushButton('顯示文本')
        self.buttonHTML = QPushButton('顯示HTML')

        layout = QVBoxLayout()
        layout.addWidget(self.textEdit)
        layout.addWidget(self.buttonText)
        layout.addWidget(self.buttonHTML)

        self.setLayout(layout)

        self.buttonText.clicked.connect(self.onClick_ButtonText)
        self.buttonHTML.clicked.connect(self.onClick_ButtonHTML)


    def onClick_ButtonText(self):
        self.textEdit.setPlainText('HEllO WORLD,世界~') # 純文本

    def onClick_ButtonHTML(self):
        self.textEdit.setHtml('<font color = "blue" size = 10 >HELLO WROLD</font>')


if __name__ == '__main__':
    app = QApplication(sys.argv)
    ui = QTextEditDemo()
    ui.show()
    sys.exit(app.exec_())

1.2 運(yùn)行結(jié)果

文本顯示
【PyQt】11-QTextEdit、QPushButton,PyQt5,pyqt
HTML顯示
【PyQt】11-QTextEdit、QPushButton,PyQt5,pyqt

二、QPushButton

類型

  • QAstractButton-按鈕控件的基類
    它提供了一些通用的方法和信號,可以用于派生其他類型的按鈕。一般情況下,你不會(huì)直接使用 QAbstractButton 類。
  • AToolButton - 工具按鈕
  • QPushButton -普通的按鈕
  • QRadioButton -單選按鈕
  • QcheckBox -復(fù)選框

2.1.1 按鈕上添加文本

有兩種方法

 self.button1 = QPushButton( '按鈕1' )
self.button1.setText('First Button')

兩種展示結(jié)果是一樣的。
【PyQt】11-QTextEdit、QPushButton,PyQt5,pyqt

2.1.2 按鍵的彈跳效果

        self.button1.setCheckable(True) # 將按鈕設(shè)置為可選中狀態(tài)。這意味著用戶可以點(diǎn)擊按鈕以切換其選中狀態(tài)。
        self.button1.toggle()

沒按下時(shí)候
【PyQt】11-QTextEdit、QPushButton,PyQt5,pyqt
按下的情況
【PyQt】11-QTextEdit、QPushButton,PyQt5,pyqt

打印獲取按下的按鍵

self.button1.clicked.connect(lambda: self.whichButton(self.button1))

lambda 是 Python 中的一個(gè)關(guān)鍵字,用于創(chuàng)建小而簡潔的匿名函數(shù)。匿名函數(shù)是指沒有具體名稱的函數(shù),通常用于只需要一次性使用的簡單函數(shù)場景。

這個(gè)匿名函數(shù)的作用是在調(diào)用時(shí),執(zhí)行 self.whichButton(self.button1) 這個(gè)方法。匿名函數(shù)沒有傳入?yún)?shù),因此它會(huì)直接調(diào)用 self.whichButton(self.button1) 方法,并將 self.button1 作為參數(shù)傳遞進(jìn)去。

使用 lambda 創(chuàng)建匿名函數(shù)的好處在于,能夠在不需創(chuàng)建獨(dú)立函數(shù)的情況下,快速定義一個(gè)簡單的函數(shù)功能,并在需要時(shí)直接傳遞和調(diào)用。
【PyQt】11-QTextEdit、QPushButton,PyQt5,pyqt

2.1.3 兩個(gè)信號可以綁定一個(gè)槽。

【PyQt】11-QTextEdit、QPushButton,PyQt5,pyqt
【PyQt】11-QTextEdit、QPushButton,PyQt5,pyqt

2.1.4 帶圖標(biāo)的按鍵

【PyQt】11-QTextEdit、QPushButton,PyQt5,pyqt

運(yùn)行結(jié)果

【PyQt】11-QTextEdit、QPushButton,PyQt5,pyqt

2.1.5 按鍵不可用以及回車默認(rèn)

【PyQt】11-QTextEdit、QPushButton,PyQt5,pyqt

完整代碼

'''
#Author :susocool
#Creattime:2024/2/14
#FileName:024-Button
#Description: 

'''
import sys
from PyQt5.QtCore import *
from PyQt5.QtWidgets import *
from PyQt5.QtGui import *

class QPushButtonDemo(QDialog):
    def __init__(self):
        super(QPushButtonDemo, self).__init__()
        self.initUI()

    def initUI(self):
        self.setWindowTitle('Button')
        self.resize(300,300)

        self.button1 = QPushButton( '按鈕1' )
        # self.button1.setText('First Button')
        self.button1.setCheckable(True) # 將按鈕設(shè)置為可選中狀態(tài)。這意味著用戶可以點(diǎn)擊按鈕以切換其選中狀態(tài)。
        self.button1.toggle()

        self.button2 = QPushButton('圖像按鈕')
        self.button2.setIcon(QIcon('./管理困難.png'))

        self.button3 = QPushButton('不可用')
        self.button3.setEnabled(False)

        self.button4 = QPushButton('&Mybutton')     # 添加熱鍵Alt+M 即可選中
        self.button4.setDefault(True)   # 將按鈕設(shè)置為默認(rèn)按鈕。默認(rèn)按鈕在界面中按下 Enter 鍵時(shí)被激活
                                        #(默認(rèn)情況下,第一個(gè)添加到窗口的按鈕就是默認(rèn)按鈕)
                                        
        self.button1.clicked.connect(lambda: self.whichButton(self.button1))
        self.button1.clicked.connect(self.buttonState)
        self.button2.clicked.connect(lambda:self.whichButton(self.button2))
        self.button4.clicked.connect(lambda:self.whichButton(self.button4))


        layout = QVBoxLayout()
        layout.addWidget(self.button1)
        layout.addWidget(self.button2)
        layout.addWidget(self.button3)
        layout.addWidget(self.button4)
        self.setLayout(layout)

    def whichButton(self,btn):
        print("被單擊的按鈕是<" + btn.text() + '>')

    def buttonState(self):
        if self.button1.isChecked():
            print('按鍵1被選中')

        else:
            print("按鍵1未被選中")


if __name__ == '__main__':
    app = QApplication(sys.argv)
    ui = QPushButtonDemo()
    ui.show()
    sys.exit(app.exec_())

運(yùn)行結(jié)果
【PyQt】11-QTextEdit、QPushButton,PyQt5,pyqt

2.2 單選按鍵控件

這段主要體會(huì)狀態(tài)切換時(shí)候的槽函數(shù)怎么寫。

'''
#Author :susocool
#Creattime:2024/2/15
#FileName:025-單選按鍵控件
#Description:
'''

import sys
from PyQt5.QtCore import *
from PyQt5.QtWidgets import *
from PyQt5.QtGui import *

class RadioButtonDemo(QWidget):
    def __init__(self):
        super(RadioButtonDemo, self).__init__()
        self.initUI()

    def initUI(self):
        self.setWindowTitle('可選按鍵')

        self.button1 = QRadioButton('單選按鈕1')
        self.button1.setCheckable(True)

        self.button2 = QRadioButton('單選按鈕2')


        layout = QHBoxLayout()
        layout.addWidget(self.button1)
        layout.addWidget(self.button2)
        self.setLayout(layout)

        self.button1.toggled.connect(self.buttonState)    # 狀態(tài)切換
        self.button2.toggled.connect(self.buttonState)

    def buttonState(self):
        radioButton = self.sender()
        if radioButton.isChecked() == True:
            print('<' + radioButton.text() + '>被選中')
        else:
            print ( '<' + radioButton.text () + '>被取消選中狀態(tài)')


if __name__ == '__main__':
    app = QApplication(sys.argv)
    ui = RadioButtonDemo()
    ui.show()
    sys.exit(app.exec_())

運(yùn)行結(jié)果

【PyQt】11-QTextEdit、QPushButton,PyQt5,pyqt

2.3 復(fù)選框(多選框)

'''
#Author :susocool
#Creattime:2024/2/15
#FileName:026-復(fù)選框
#Description:三種形式的復(fù)選框
'''

import sys
from PyQt5.QtCore import *
from PyQt5.QtCore import Qt
from PyQt5.QtWidgets import *
from PyQt5.QtGui import *

class QCheckBoxDemo(QWidget):
    def __init__(self):
        super(QCheckBoxDemo, self).__init__()
        self.initUI()

    def initUI(self):
        self.setWindowTitle('復(fù)選框')

        self.checkBox1 = QCheckBox('復(fù)選框控件1')
        self.checkBox1.setChecked(True)

        self.checkBox2 = QCheckBox('普通復(fù)選框')

        self.checkBox3 = QCheckBox('半選中')
        self.checkBox3.setChecked(True)
        self.checkBox3.setCheckState(Qt.PartiallyChecked)

        self.checkBox1.stateChanged.connect(lambda:self.checkboxState(self.checkBox1))
        self.checkBox2.stateChanged.connect(lambda:self.checkboxState(self.checkBox2))
        self.checkBox3.stateChanged.connect(lambda:self.checkboxState(self.checkBox3))

        layout = QHBoxLayout()
        layout.addWidget(self.checkBox1)
        layout.addWidget(self.checkBox2)
        layout.addWidget(self.checkBox3)
        self.setLayout(layout)

    def checkboxState(self,cb):
        # checkState()返回值是一個(gè)整數(shù),而在打印的時(shí)候我們希望以字符串的形式展現(xiàn),因此注意格式?。。?/span>
        checkState1 = self.checkBox1.text() + ',isChecked=' + str(self.checkBox1.isChecked()) + ',checkState = ' + str(self.checkBox1.checkState()) + ' \n '
        checkState2 = self.checkBox2.text() + ',isChecked=' + str(self.checkBox2.isChecked()) + ',checkState = ' + str(self.checkBox2.checkState()) + ' \n '
        checkState3 = self.checkBox3.text() + ',isChecked=' + str(self.checkBox3.isChecked()) + ',checkState = ' + str(self.checkBox3.checkState()) + ' \n '
        print(checkState1 + checkState2 + checkState3)


if __name__ == '__main__':
    app = QApplication(sys.argv)
    ui = QCheckBoxDemo()
    ui.show()
    sys.exit(app.exec_())


運(yùn)行結(jié)果

未選中狀態(tài)
【PyQt】11-QTextEdit、QPushButton,PyQt5,pyqt
選擇復(fù)選框1
【PyQt】11-QTextEdit、QPushButton,PyQt5,pyqt
【PyQt】11-QTextEdit、QPushButton,PyQt5,pyqt
普通復(fù)選框
【PyQt】11-QTextEdit、QPushButton,PyQt5,pyqt

半選中
【PyQt】11-QTextEdit、QPushButton,PyQt5,pyqt
【PyQt】11-QTextEdit、QPushButton,PyQt5,pyqt
【PyQt】11-QTextEdit、QPushButton,PyQt5,pyqt
簡單總結(jié)下來就是復(fù)選框有兩種狀態(tài),而半選中框有三種狀態(tài)。

2.4 下拉列表按鍵

'''
#Author :susocool
#Creattime:2024/2/15
#FileName:027-下拉列表按鍵
#Description:
'''
import sys
from PyQt5.QtWidgets import *


class QComboBoxDemo(QWidget):
    def __init__(self):
        super(QComboBoxDemo, self).__init__()
        self.initUI()

    def initUI(self):
        self.setWindowTitle('下拉列表')
        self.resize(300,100)

        self.label = QLabel('請選擇編程語言')

        self.combo = QComboBox()
        self.combo.addItem('C++')
        self.combo.addItem('Python')
        self.combo.addItems(['C語言','C#','Java'])    # 注意這里是s

        # 當(dāng)前索引變化
        self.combo.currentIndexChanged.connect(self.selectionChange)

        layout = QVBoxLayout()
        layout.addWidget(self.combo)
        layout.addWidget(self.label)
        self.setLayout(layout)

    # currentIndexChanged默認(rèn)傳遞兩個(gè)參數(shù),因此槽設(shè)置兩個(gè)參數(shù)
    def selectionChange(self,i):
        self.label.setText(self.combo.currentText())
        self.label.adjustSize() # 自適應(yīng)調(diào)整大小

        for count in range(self.combo.count()):
            print('item' + str(count) + '='+self.combo.itemText(count))
        print('current index',i,'selection changed',self.combo.currentText())



if __name__ == '__main__':
    app = QApplication(sys.argv)
    ui = QComboBoxDemo()
    ui.show()
    sys.exit(app.exec_())



運(yùn)行結(jié)果

【PyQt】11-QTextEdit、QPushButton,PyQt5,pyqt
【PyQt】11-QTextEdit、QPushButton,PyQt5,pyqt


總結(jié)

這篇文章依舊沒有總結(jié)文章來源地址http://www.zghlxwxcb.cn/news/detail-827749.html

到了這里,關(guān)于【PyQt】11-QTextEdit、QPushButton的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 【PyQt5】logging封裝+pyqt5展示系統(tǒng)日志

    創(chuàng)建logging對象 設(shè)置日志輸出級別 指定日志輸出格式 指定日志輸出路徑 指定日志輸出文件 控制臺(tái)輸出 文件輸出 7.1 指定FileHandler 7.2 設(shè)置日志輸出格式 7.3 設(shè)置過濾條件 7.4 將文件輸出日志添加過濾條件 7.5 對logger增加handler日志處理器 1.cmd中輸入命令,將.ui轉(zhuǎn)換成.py 2.重新封

    2024年02月06日
    瀏覽(23)
  • PyQt5入門(一)——PyQt5與QtDesigner的安裝

    PyQt5入門(一)——PyQt5與QtDesigner的安裝

    首先,需要確保你已經(jīng)安裝了Python和PIP,因?yàn)槭褂肞IP來安裝PyQt5是最簡便的方法。以下是在Windows和Ubuntu環(huán)境下配置并安裝PyQt5以及QtDesigner的步驟: 打開命令提示符(CMD)。 運(yùn)行以下命令安裝PyQt5:pip install pyqt5 安裝完成后,在命令提示符中運(yùn)行“python”命令,然后輸入“im

    2024年02月02日
    瀏覽(25)
  • [pyqt5]關(guān)于在pyqt5界面上鼠標(biāo)位置問題

    先上代碼,主要看鼠標(biāo)移動(dòng)事件里面代碼 通過運(yùn)行代碼可以發(fā)現(xiàn): 上面這2行就是相當(dāng)于屏幕左上角坐標(biāo)了

    2024年02月15日
    瀏覽(29)
  • PyQt5入門1——PyQt5的安裝與Hello World應(yīng)用

    PyQt5入門1——PyQt5的安裝與Hello World應(yīng)用

    搞搞可視化界面哈,雖然不一定有用,但是搞一下。 PyQt實(shí)現(xiàn)了一個(gè)Python模塊集。它有超過300類,將近6000個(gè)函數(shù)和方法。它是一個(gè)多平臺(tái)的工具包,可以運(yùn)行在所有主要操作系統(tǒng)上,包括UNIX,Windows和Mac。 PyQt采用雙許可證,開發(fā)人員可以選擇GPL和商業(yè)許可。在此之前,GPL的版

    2024年02月12日
    瀏覽(37)
  • PyQT5和PyQt6的區(qū)別

    PyQt6和PyQt5是兩個(gè)版本的PyQt框架,具有以下區(qū)別: 1.PyQt6是PyQt的最新版本,而PyQt5是較舊的版本。PyQt6提供了更多的功能和改進(jìn),以提供更好的用戶體驗(yàn)和開發(fā)體驗(yàn)。 2.PyQt6支持Python 3.10及更高版本,而PyQt5支持Python 3.5到3.9版本。 3.PyQt6對底層Qt庫的版本要求更高,支持Qt 6及更高

    2024年02月07日
    瀏覽(43)
  • PyQt6 和 PyQt5 的差異

    PyQt6 和 PyQt5 的差異

    PyQt6 是 PyQt5 的下一個(gè)版本,但兩個(gè)版本的寫法基本上其實(shí)大同小異,這篇教學(xué)會(huì)介紹 PyQt6 和 PyQt5 有何差異。 快速預(yù)覽: .exec_() 改為 .exec() 方法的位置或名稱改變 不需要高 DPI 縮放屬性 支援 Qt的資源 特定平臺(tái) 其他細(xì)節(jié)差異 PyQt6 教學(xué) - PyQt6 和 PyQt5 的差異 在 Python 2.7

    2024年02月15日
    瀏覽(23)
  • [Python GUI PyQt] PyQt5快速入門

    [Python GUI PyQt] PyQt5快速入門

    本文為博主個(gè)人對自己學(xué)習(xí) PyQt5 GUI技術(shù)的綱要式的總結(jié),主要的目的是以比較宏觀的視角再次對 PyQt5 這一項(xiàng)技術(shù)作一次總結(jié),通過該文可以快速讓讀者建立起 PyQt5 最基本的知識體系,了解 PyQt5 的 基本界面的設(shè)計(jì) 、 信號與槽 和 多線程 等知識,并簡單學(xué)會(huì)使用 Qt Designer 工

    2024年04月15日
    瀏覽(31)
  • python GUI工具之PyQt5模塊,pyCharm 配置PyQt5可視化窗口

    python GUI工具之PyQt5模塊,pyCharm 配置PyQt5可視化窗口

    https://doc.qt.io/qt-5/qtwidgets-module.html https://doc.qt.io/qt-5/qt.html#AlignmentFlag-enum 一、簡介 PyQt是Qt框架的Python語言實(shí)現(xiàn),由Riverbank Computing開發(fā),是最強(qiáng)大的GUI庫之一。PyQt提供了一個(gè)設(shè)計(jì)良好的窗口控件集合,每一個(gè)PyQt控件都對應(yīng)一個(gè)Qt控件。 PyQt5是由一系列Python模塊組成,有超過6

    2024年02月11日
    瀏覽(48)
  • 【PyQt】PyQt5進(jìn)階——串口上位機(jī)及實(shí)時(shí)數(shù)據(jù)顯示

    【PyQt】PyQt5進(jìn)階——串口上位機(jī)及實(shí)時(shí)數(shù)據(jù)顯示

    【Python】PyQt5入門 ??最近在用PyQt做一個(gè)串口上位機(jī),需要串口通信和實(shí)時(shí)顯示曲線。這里簡單記錄一些關(guān)鍵點(diǎn)。 ??這個(gè)是在安裝PyQt5時(shí)自動(dòng)安裝的組件,使用方法比較簡單,主要是兩個(gè)模塊: QSerialPort , QSerialPortInfo ??以上就是串口部分的代碼,比較簡單,利用代碼提

    2024年02月12日
    瀏覽(30)
  • mac python3.9安裝pyqt5、qt5、pyqt5-tools

    mac python3.9安裝pyqt5、qt5、pyqt5-tools

    pyqt6安裝參考 PyQT6:看這一篇就夠了 python PyQt6 常用操作以及常見問題解決 pycharm配置tools 參考鏈接 以下pip命令自行更具自己環(huán)境選擇pip或pip3 在安裝pyqt前必須先安裝sip包 完成sip的安裝后,安裝pyqt和pyqt-tools, 可以直接使用命令: 若是使用pip3安裝報(bào)錯(cuò) AttributeError: module ‘sipb

    2024年02月14日
    瀏覽(55)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包