最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

氣輕PyQt6 15 不同窗口控件的信息傳遞

2023-03-15 07:11 作者:氣輕  | 我要投稿

?

【氣輕PyQt6 13】用槽函數(shù)實現(xiàn)了不同窗口控件間的信息傳遞。這里用另外一種方式來實現(xiàn)不同窗口控件間的信息傳遞。點擊單選按鈕后,將六個單選按鈕組成的按鈕組顯示在新窗口中,點擊按鈕后,窗口會關(guān)閉,選擇的結(jié)果會顯示在主窗口的標簽控件。

?

from PyQt6.QtWidgets import *

from PyQt6.QtGui import QFont, QIcon, QPixmap

from PyQt6.QtCore import Qt, QDate, pyqtSignal, QSize

import sys

import datetime

import numpy as np

?

timeLabel = ['早飯前', '早飯后', '午飯前', '午飯后', '晚飯前', '晚飯后']

?

class PyQt615(QWidget):

??? def __init__(self):

??????? super().__init__()

??????? self.initUI()

??? def initUI(self):

??????? self.setWindowTitle('氣輕PyQt6')??????????????? # 設(shè)置窗口標題

??????? self.resize(450, 50)??????????????????????????? # 設(shè)置窗口大小

??????? self.setStyleSheet('background-color:#40E0D0')

?

??????? dateData = datetime.datetime.now().date()

??????? dateLabel = dateData.strftime('%Y-%m-%d')

??????? self.edit = QLineEdit(self)???????????????????? # 輸入框

??????? self.edit.setGeometry(10, 0,230, 40)??????????? # 設(shè)置位置和大小

??????? self.edit.setReadOnly(True) ????????????????????# 只讀

??????? self.edit.setText(dateLabel)

??????? self.edit.setAlignment(Qt.AlignmentFlag.AlignHCenter)# 居中設(shè)置

??????? self.edit.setStyleSheet('background-color:#7A67EE;color : #32CD32; \

??????????????????? font: bold large /"Times New Roman/";font-size:25px')

?

??????? self.btn = QPushButton('', self)

??????? self.btn.setGeometry(240,0,40,40)?????????????? # 設(shè)置位置和大小

??????? self.btn.setIcon(QIcon(QPixmap('Date.png')))

??????? self.btn.setIconSize(QSize(36,36))

??????? self.btn.clicked.connect(self.calendarOn)

??????? self.btn.setStyleSheet('background-color:#DAA520')

?

??????? self.stage = QLabel(self)?????????????????????? #設(shè)置label信息

??????? self.stage.setGeometry(280, 0,120, 40)????????? # 設(shè)置位置和大小

??????? self.stage.setText(timeLabel[0])

??????? self.stage.setObjectName('label')

??????? self.stage.setToolTip('時段')?????????????????? # 設(shè)置label提示

??????? self.stage.setAlignment(Qt.AlignmentFlag.AlignHCenter)# 居中設(shè)置

??????? self.stage.setStyleSheet('background-color:#7A67EE;color : #32CD32; \

??????????????????? font: bold large /"Times New Roman/";font-size:25px')

?

??????? self.bTime = QPushButton('', self)

??????? self.bTime.resize(40,40)

??????? self.bTime.move(400,0)

??????? self.bTime.setFont(QFont('Arial',20))

??????? self.bTime.setIcon(QIcon(QPixmap('DataEntry.png')))

??????? self.bTime.setIconSize(QSize(36,36))

??????? self.bTime.clicked.connect(self.StageOn)

??????? self.bTime.setStyleSheet('background-color:#DAA520')

?

??????? self.show()

?

??? def updateEdit(self,t):

??????? self.edit.setText(t)

?

??? def calendarOn( self ):

??????? self.calWin = CalendarWin(self.edit)

??????? self.calWin.show()

??????? self.calWin.move(740,560)

??????? self.calWin.signal.connect(self.updateEdit)??? # 連接信號與槽

?

??? def StageOn( self ):

??????? self.stageWin = StageWin(self.stage)

??????? self.stageWin.show( )

??????? self.stageWin.move(740,560)

?

class StageWin(QWidget):

??? def __init__(self,t):

??????? super().__init__()

??????? self.t = t

??????? self.setWindowTitle('時段')

??????? self.resize(440, 60)

??????? self.setStyleSheet('background-color:#F5DEB3')

?

??????? self.rg = QButtonGroup(self)

???????

??????? rdict = dict.fromkeys(timeLabel)

??????? x, y=np.meshgrid([80, 180, 280], [10, 30])

??????? xdict = dict(zip(timeLabel, x.ravel()))

??????? ydict = dict(zip(timeLabel, y.ravel()))

?

??????? for i, s in enumerate(timeLabel):

??????????? rdict[s] = QRadioButton(self)

??????????? rdict[s].setText(s)

??????????? rdict[s].move(xdict[s], ydict[s])

??????????? self.rg.addButton(rdict[s],i)

??????? rdict[timeLabel[0]].setChecked(True)??????????? # 設(shè)置第一個單選框被選中

??????? self.rg.buttonClicked.connect(self.updateStage)

?

??? def updateStage(self,val):

??????? self.t.setText(timeLabel[self.rg.checkedId()])

??????? self.close()

?

class CalendarWin(QWidget):

??? signal = pyqtSignal( str )????????????????????????? #定義一個信號

??? def __init__(self,t):

??????? super().__init__()

??????? self.t = t

??????? self.setWindowTitle('日期')

??????? self.resize(440, 220)

??????? cal = QCalendarWidget(self)

??????? cal.setGridVisible(True)

??????? cal.resize(400,160)

??????? cal.move(10,10)

??????? cal.clicked[QDate].connect(self.emitDate)??? # 按下按鈕時發(fā)送信號

?

??? def emitDate(self,date):

??????? self.signal.emit(date.toString("yyyy-MM-dd"))

??????? self.close()

?

if __name__ == '__main__':

??? app = QApplication(sys.argv)

??? window = PyQt615()

??? sys.exit(app.exec())

?

執(zhí)行結(jié)果


氣輕PyQt6 15 不同窗口控件的信息傳遞的評論 (共 條)

分享到微博請遵守國家法律
吉木乃县| 丹东市| 九台市| 宁安市| 延安市| 榆社县| 六安市| 祁阳县| 祥云县| 濮阳县| 古蔺县| 分宜县| 静安区| 土默特右旗| 宁蒗| 吴江市| 洛阳市| 台东县| 台安县| 荣成市| 横峰县| 松滋市| 桓台县| 佛山市| 富宁县| 甘洛县| 恩施市| 安义县| 平潭县| 包头市| 平山县| 吉安市| 喀喇沁旗| 咸丰县| 望城县| 都昌县| 宜兰市| 浠水县| 万载县| 瑞丽市| 高阳县|