目錄
0、學習資源
1、給控件設置提示信息——QToolTip
2、QLabel控件(顯示圖像、設置超鏈接、信號綁定)
3、QLabel伙伴關系
1)代碼
?2)效果
3)知識點addWidget
0、學習資源
PyQt5教程,來自網易云課堂_嗶哩嗶哩_bilibilihttps://study.163.com/pycharm+pyqt5視頻來自網易云課堂https://www.bilibili.com/video/BV154411n79k
1、給控件設置提示信息——QToolTip
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time : 2022/5/17 21:02
# @Author : @linlianqin
# @Site :
# @File : 給控件添加信息提示.py
# @Software: PyCharm
# @description:from PyQt5.QtWidgets import QMainWindow,QToolTip,QPushButton,QHBoxLayout,QWidget,QApplication
from PyQt5.QtGui import QFontclass messageTipLearn(QMainWindow):def __init__(self):super(messageTipLearn,self).__init__()# 設置一個按鈕self.button = QPushButton()self.button.setText("信息提示")# 設置一個橫向布局self.hLayout = QHBoxLayout()# 設置一個窗口self.widget = QWidget()# 將按鈕放在布局中self.hLayout.addWidget(self.button)# 將布局放在窗口self.widget.setLayout(self.hLayout)# 將窗口添加到界面上self.setCentralWidget(self.widget)# 設置提示信息的格式QToolTip.setFont(QFont("SanSerif",12))# 設置提示內容self.button.setToolTip("這是一個按鈕")# 設置提示信息顯示的時長,5sself.button.setToolTipDuration(5000)if __name__ == '__main__':import sysapp = QApplication(sys.argv)win = messageTipLearn()win.resize(300,300)win.setWindowTitle("信息提示學習")win.show()sys.exit(app.exec_())
2、QLabel控件(顯示圖像、設置超鏈接、信號綁定)
QLabel控件有兩個信號,前提都是label控件上面的內容為超鏈接文本
一個信號是劃過label上面的鏈接時觸發:linkhovered
一個信號是點擊label上面的鏈接時觸發:linkActivated
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time : 2022/5/17 21:37
# @Author : @linlianqin
# @Site :
# @File : QLabelDemo.py
# @Software: PyCharm
# @description:from PyQt5.QtWidgets import QMainWindow,QToolTip,QLabel,QVBoxLayout,QWidget,QApplication
from PyQt5.QtGui import QFont,QPixmap
from PyQt5.QtCore import Qtclass labelDemo(QWidget):def __init__(self):super(labelDemo, self).__init__()self.InitUi()def InitUi(self):# 創建四個label控件## label1標題欄,居中顯示label1 = QLabel()label1.setText("這是一個label標簽控件演示程序")label1.setAlignment(Qt.AlignCenter)## label2創建鏈接label2 = QLabel()label2.setText("<a href='#'>歡迎使用Python GUI Label 控件</a>")## label3顯示圖像label3 = QLabel()label3.resize(100,300)label3.setScaledContents(True) # 設置圖像自適應控件大小label3.setPixmap(QPixmap("./1.jpg"))## label4顯示超鏈接label4 = QLabel()label4.setOpenExternalLinks(True)label4.setText("<a href='http:www.baidu.com'>進入百度搜索</a>")# 布局self.vlayout = QVBoxLayout()self.vlayout.addWidget(label1)self.vlayout.addWidget(label2)self.vlayout.addWidget(label3)self.vlayout.addWidget(label4)self.setLayout(self.vlayout)label2.linkHovered.connect(self.hoverLabelSlot)label4.linkActivated.connect(self.clickedLabelSlot)# 劃過label上面鏈接觸發def hoverLabelSlot(self):print("劃過label控件觸發的事件")# label上鏈接點擊觸發事件def clickedLabelSlot(self):print("點擊label控件觸發的事件")if __name__ == '__main__':import sysapp = QApplication(sys.argv)win = labelDemo()win.resize(300,300)win.setWindowTitle("label控件學習")win.show()sys.exit(app.exec_())
?
3、QLabel伙伴關系
伙伴關系其實就是通過一個控件來控制另一個控件,比如一個登陸界面,需要輸入用戶名和密碼,通常我們需要用鼠標或者觸摸屏來點擊輸入框后再進行輸入,這樣再輸入用戶名后又得進行鼠標或者觸摸屏的操作,當輸入框繁多的時候,這種操作就會顯得非常的繁瑣,而通過設置伙伴關系,通過鍵盤的組合鍵就可以實現定位到指定的輸入框進行輸入
Windows系統下通過Alt+指定字母鍵來實現。
具體可以參考文章:
PyQt5之設置控件之間的伙伴關系_Anony吧的博客-CSDN博客_pyqt5 伙伴關系PyQt5之設置控件之間的伙伴關系伙伴關系:設置兩個控件之間的關聯,通過一個控件控制另一個控件。1、首先選擇在Widget Box中拖入一個Frame屬性放在窗口中,再往窗口中添加Label、Line Edit屬性,并且修改Label屬性的顯示值,在這里我采用容器布局管理,對整個Frame容器使用表單布局,效果圖如下:2、向每個Label屬性添加熱鍵(&A)、(&B)、(&C),如下圖:熱鍵:又叫快捷鍵,通過操控鍵盤的特點鍵來快速完成指定的操作,代替了鼠標的繁瑣移動。
https://blog.csdn.net/qq_44880255/article/details/106365681
1)代碼
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time : 2022/5/20 16:10
# @Author : @linlianqin
# @Site :
# @File : QLabelBuddy伙伴關系.py
# @Software: PyCharm
# @description:from PyQt5.QtWidgets import QDialog,QLabel,QLineEdit,QPushButton,QGridLayout,QApplicationclass QLabelBuddy(QDialog):def __init__(self):super(QLabelBuddy, self).__init__()self.InitUI()# 初始化界面def InitUI(self):self.setWindowTitle("QLabel控件伙伴關系")# 創建label和lineEditlabel1 = QLabel("用戶名(&A):",self)lineEdit1 = QLineEdit(self)# 設置二者伙伴關系label1.setBuddy(lineEdit1)# 創建label和lineEditlabel2 = QLabel("密碼(&B):",self)lineEdit2 = QLineEdit(self)# 設置二者伙伴關系label2.setBuddy(lineEdit2)# 創建按鈕btn1 = QPushButton("登錄")btn2 = QPushButton("退出")# 創建柵格布局,將控件放在布局里面mainLayout = QGridLayout(self)mainLayout.addWidget(label1,0,0) # 將控件label1放置在第一行第一列mainLayout.addWidget(lineEdit1,0,1,1,2) # 將控件lineEdit控件放在第一行第二列,并且占一行兩列的大小位置mainLayout.addWidget(label2,1,0) # 將控件label1放置在第一行第一列mainLayout.addWidget(lineEdit2,1,1,1,2) # 將控件lineEdit控件放在第一行第二列,并且占一行兩列的大小位置mainLayout.addWidget(btn1,2,1) # 將控件label1放置在第一行第一列mainLayout.addWidget(btn2,2,2) # 將控件lineEdit控件放在第一行第二列,并且占一行兩列的大小位置if __name__ == '__main__':import sysapp = QApplication(sys.argv)demoWin = QLabelBuddy()demoWin.show()sys.exit(app.exec_())
?2)效果
這里通過
Alt+A可以將光標定位在用戶名的輸入框中
Alt+B可以將光標定位在密碼的輸入框中?
其實可以理解為快捷鍵或熱鍵
3)知識點addWidget
1、往柵格布局里面加控件
addWidget(需要添加的控件名,布局的第幾行**索引從0開始**,第幾列,大小占幾行,占幾列)
2、setBuddy——將兩個控件設置伙伴關系