RError.com

RError.com Logo RError.com Logo

RError.com Navigation

  • 主页

Mobile menu

Close
  • 主页
  • 系统&网络
    • 热门问题
    • 最新问题
    • 标签
  • Ubuntu
    • 热门问题
    • 最新问题
    • 标签
  • 帮助
主页 / user-467285

Nikita Khistov's questions

Martin Hope
Nikita Khistov
Asked: 2022-06-05 17:31:27 +0000 UTC

将两个程序合二为一

  • 0

我有一个程序有15问题,第二个程序有 15 个其他问题。
我希望将这些问题、答案选项和答案放在一个程序中。
或者更确切地说,游戏中将保留 15 个问题,只需1从两个中随机选择问题,
第二个问题也从两个中随机选择,等等。

每个问题都有不同的答案。

第一个程序的代码:

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


class WindowGroup(QWidget):
    def __init__(self):
        super().__init__()
        self.setObjectName('windowgroup')

        self.list_questions = [                  
            '<h1 style="color: rgb(185, 255, 0);">Що мають на увазі кажучи: "пройшов вогонь, воду і мідні труби"?</h1>',
            '<h1 style="color: rgb(185, 255, 0);">Який материк найбільший?</h1>',
            '<h1 style="color: rgb(185, 255, 0);">Куди вказує червона стрілка компаса?</h1>',
            '<h1 style="color: rgb(185, 255, 0);">Який пігмент забарвлює листя в зелений колір?</h1>',
            '<h1 style="color: rgb(185, 255, 0);">Який препарат марно намагалися отримати середньовічні алхіміки?</h1>',
            '<h1 style="color: rgb(185, 255, 0);">Як правильно кликати гусака?</h1>',
            '<h1 style="color: rgb(185, 255, 0);">Якій кухні належить блюдо "форшмак"?</h1>',
            '<h1 style="color: rgb(185, 255, 0);">Яку рослину називають «живим світлофором»?</h1>',
            '<h1 style="color: rgb(185, 255, 0);">Що є туманністю Андромеди?</h1>',
            '<h1 style="color: rgb(185, 255, 0);">Назвіть офіційну мову Шрі-Ланки:</h1>',
            '<h1 style="color: rgb(185, 255, 0);">Столицею якої країни є місто Богота?</h1>',
            '<h1 style="color: rgb(185, 255, 0);">Які літальні апарати конструював Отто Ліліенталь?</h1>',
            '<h1 style="color: rgb(185, 255, 0);">У якому столітті в Китаї почали добувати залізо?</h1>',
            '<h1 style="color: rgb(185, 255, 0);">У якій мові програмування немає засобів роботи з файлами?</h1>',
            '<h1 style="color: rgb(185, 255, 0);">У яких тварин офіційно реєструвалися сонячні удари, подібні до людських?</h1>',
        ]

        self.quantity_questions = len(self.list_questions) 

        self.list_buttons = [                                     
            ['A: Навчання', 'В: Самогон', 'C: Стаж', 'D: Досвід'],
            ['A: Північна Америка', 'В: Південна Америка', 'C: Африка', 'D: Євразія'],
            ['A: Північ', 'В: Схід', 'C: Захід', 'D: Південь'],
            ['A: Каротин', 'В: Антоціан', 'C: Хлорофіл', 'D: Танін'],
            ['A: Настоянку мудрості', 'В: Засіб від лупи', 'C: Еліксир життя', 'D: Напій сміливості'],
            ['A: Киць-киць', 'В: Гуль-гуль', 'C: Тега-тега', 'D: Курчат-курчат'],
            ['A: Єврейській', 'В: Грузинській', 'C: Китайській', 'D: Індійській'],
            ['A: Акаліфа', 'В: Медуниця', 'C: Маранта', 'D: Кротон'],
            ['A: Метеорит', 'В: Зірка', "С: Сузір'я", 'D: Галактика'],
            ['A: Урду', 'В: Сінгальский', 'C: Бенгальський', 'D: Брахми'],
            ['A: Чилі', 'В: Перу' ,'C: Аргентина', 'D: Колумбія'],
            ['A: Вертольоти', 'В: Дирижаблі', 'C: Літаки-біплани', 'D: Планери'],
            ['A: 4 вік до н.е', 'В: 2 вік', 'C: 3 вік', 'D: 5 вік до н.е.'],
            ['A: PHP', 'В: Delphi', 'C: C++', 'D: JavaScript'],
            ['A: У собак', 'В: У кішок', 'C: У свиней', 'D: У кроликів']
        ]
        self.list_yes_buttons = [                      
            'D: Досвід',
            'D: Євразія',
            'D: Південь',
            'C: Хлорофіл',
            'C: Еліксир життя',
            'C: Тега-тега',
            'A: Єврейській',
            'В: Медуниця',
            'D: Галактика',
            'В: Сінгальский',
            'D: Колумбія',
            'D: Планери',
            'D: 5 вік до н.е.',
            'D: JavaScript',
            'D: У кроликів'
        ]
        self.current_question = 0 

        self.label = QLabel(self.list_questions[self.current_question])

        self.radioGroupBox = QGroupBox('') 
        self.radioGroup = QButtonGroup() 

        self.rbtn_1 = QPushButton('A: Навчання')
        self.rbtn_1.setFixedSize(740, 49)
        self.rbtn_2 = QPushButton('В: Самогон')
        self.rbtn_2.setFixedSize(740, 49)
        self.rbtn_3 = QPushButton('C: Стаж')
        self.rbtn_3.setFixedSize(740, 49)
        self.rbtn_4 = QPushButton('D: Досвід')
        self.rbtn_4.setFixedSize(740, 49) 

        self.radioGroup.addButton(self.rbtn_1)
        self.radioGroup.addButton(self.rbtn_2)
        self.radioGroup.addButton(self.rbtn_3)
        self.radioGroup.addButton(self.rbtn_4)

        self.hint_5050 = QPushButton(self)
        self.hint_5050.setIcon(QIcon('5050_normal.png'))
        self.hint_5050.setIconSize(QSize(105, 90))
        self.hint_5050.setFixedSize(120, 100)

        self.hint_audience = QPushButton(self)
        self.hint_audience.setIcon(QIcon('audience_normal.png'))
        self.hint_audience.setIconSize(QSize(105, 90))
        self.hint_audience.setFixedSize(120, 100)

        self.hint_expert = QPushButton(self)
        self.hint_expert.setIcon(QIcon('expert_normal.png'))
        self.hint_expert.setIconSize(QSize(105, 90))
        self.hint_expert.setFixedSize(120, 100)      

        self.hint_switch = QPushButton(self)
        self.hint_switch.setIcon(QIcon('switch_2_normal.png'))
        self.hint_switch.setIconSize(QSize(105, 90))
        self.hint_switch.setFixedSize(120, 100)         

        layout_ans1 = QHBoxLayout()  
        layout_ans2 = QVBoxLayout()
        layout_ans3 = QVBoxLayout()
        layout_ans2.addWidget(self.rbtn_1) 
        layout_ans2.addWidget(self.rbtn_2)
        layout_ans3.addWidget(self.rbtn_3) 
        layout_ans3.addWidget(self.rbtn_4)

        layout_ans1.addLayout(layout_ans2)
        layout_ans1.addLayout(layout_ans3) 

        self.radioGroupBox.setLayout(layout_ans1)

        layout = QVBoxLayout(self)
        layout.addWidget(self.label, alignment=Qt.AlignCenter)
        layout.addWidget(self.radioGroupBox)


class MainWindow(QMainWindow):
    def __init__(self):
        super().__init__()

        self.centralWidget = QWidget()                                  
        self.centralWidget.setObjectName('centralWidget')          
        self.setCentralWidget(self.centralWidget)  

        self.dict_audience_img = { 
            "A": "audience_A.png", 
            "B": "audience_B.png",
            "C": "audience_C.png",
            "D": "audience_D.png",
        }

        self.num = 3

        self.question = QLabel('<h1 style="color: rgb(250, 55, 55);">Правила гри')

        self.rules = QLabel('''Гра "Хто хоче стати мільйонером?" 
\
Ви повинні правильно відповісти на низку питань \
з кількома варіантами відповідей, щоб заробити 3.000.000 грн. \
Всього 15 питань, кожне питання коштує певної суми грошей, \
учасники не мають жодних тимчасових обмежень для надання \
відповіді. Учасник також отримуює 4 види підказок, щоб допомогти собі, \
якщо вони застрягли на конкретному питанні.  
\
Більше ознайомитися з правилами можна, натиснувши на кнопку. 
\
Хай щастить!''')
        self.rules.setStyleSheet("""
        font: bold;
        color: rgb(185, 255, 0);
    """)
        self.rules.setFixedSize(1010,450)
        self.rules.setObjectName('rules')
        self.rules.setWordWrap(True)    

        self.button_rules = QPushButton('Правила')
        self.button_rules.clicked.connect(lambda: webbrowser.open('https://ru.wwbm.com/rules'))
        self.button_rules.setFixedSize(300,50)

        self.button_start = QPushButton('Почати', clicked=self._start)  
        self.button_start.setFixedSize(300,50)
        
        
        self.layout = QVBoxLayout(self.centralWidget)
        
        self.lineH1 = QHBoxLayout()
        lineH2 = QHBoxLayout()
        lineH3 = QHBoxLayout()
        self.lineH1.addWidget(self.question, alignment=Qt.AlignHCenter)
        lineH2.addWidget(self.rules)
        lineH3.addWidget(self.button_rules, alignment=Qt.AlignCenter)
        lineH3.addWidget(self.button_start, alignment=Qt.AlignCenter)
        self.layout.addLayout(self.lineH1)
        self.layout.addWidget(self.rules, alignment=Qt.AlignHCenter)
        self.layout.addLayout(lineH3)
        
        self.timer = QTimer(self)
        self.timer.timeout.connect(self.update_timer)

        self.windowGroup = WindowGroup()

        self.windowGroup.rbtn_1.clicked.connect(self.on_clicked)
        self.windowGroup.rbtn_2.clicked.connect(self.on_clicked)
        self.windowGroup.rbtn_3.clicked.connect(self.on_clicked)
        self.windowGroup.rbtn_4.clicked.connect(self.on_clicked)

        self.list_rbtn = [
            self.windowGroup.rbtn_1,
            self.windowGroup.rbtn_2,
            self.windowGroup.rbtn_3,
            self.windowGroup.rbtn_4,
        ] 
        self.correct_answer = '<h1 style="color: #4E9F3D;">Це вірна відповідь!</h1>'
        self.wrong_answer = '<h1 style="color: #DA0037;">Це НЕ вірна відповідь!</h1>'

        self.windowGroup.hint_5050.clicked.connect(self.clicked_5050)

        self.windowGroup.hint_audience.clicked.connect(self.clicked_audience)

    def on_clicked(self):
        self.windowGroup.setEnabled(False)
        sender = self.sender()  
        self.sender_click = sender

        if sender.text() in self.windowGroup.list_yes_buttons:
            sender.setStyleSheet("background-color: green;")
            self.windowGroup.label.setText(
                f'{self.windowGroup.list_questions[self.windowGroup.current_question]} \
                {self.correct_answer}' 
            )                 
        else:
            sender.setStyleSheet("background-color: red;") 
            self.windowGroup.label.setText(
                f'{self.windowGroup.list_questions[self.windowGroup.current_question]} \
                {self.wrong_answer}' 
            )         
            self.windowGroup.current_question = self.windowGroup.quantity_questions
            self.num = 3    
        self.windowGroup.label.setAlignment(Qt.AlignCenter)

        QTimer.singleShot(3000, self.third)  

    def set_stylesheet(self):  
        self.setStyleSheet("""
            QLabel, QPushButton {
                font-size: 20pt;
            }
            #rules { 
                background-color: #ccffbd;
            }
            #windowgroup > QLabel { 
                font-size: 11pt;
            }
            #windowgroup > QGroupBox { 
                background-color: #a44500;
                font-size: 20pt;
                width: 620px; height: 49px;
            }
            QPushButton {
                background-color: #D98C00;
                font-size: 34px;
            }
            QPushButton:hover {
                background-color: #0082fc;
                border: 2px solid #FFA6D5;
            }
            #centralWidget {
                background-image: url(first.jpg);
            }
            #window_audience {
                backround-image: url(first.jpg);
            }
            """) 
        
    def update_timer(self):        
        self.question.setText(f'<h1 style="color: rgb(250, 55, 55);">{self.num}</h1>')
        if self.num == 0:
            self.timer.stop()
            
            self.set_stylesheet()                 

            self.question.setPixmap(QPixmap("million.png"))
            self.num = 3
            self.rules.hide()
            self.button_start.hide()
            self.button_rules.hide()
            self.layout.addWidget(self.windowGroup, alignment=Qt.AlignHCenter)

            self.lineH1.insertStretch(0)
            self.lineH1.insertWidget(1, self.windowGroup.hint_5050)
            self.lineH1.insertStretch(2)
            self.lineH1.insertWidget(3, self.windowGroup.hint_audience)
            self.lineH1.insertStretch(4)
            self.lineH1.insertStretch(-1)
            self.lineH1.insertWidget(-1, self.windowGroup.hint_expert)
            self.lineH1.insertStretch(-1)
            self.lineH1.insertWidget(-1, self.windowGroup.hint_switch)
            self.lineH1.insertStretch(-1)

            return            
        self.num -= 1        

    def _start(self):
        self.timer.start(1000)     

    def third(self):
        self.windowGroup.setEnabled(True)  
        self.windowGroup.hint_5050.setEnabled(False)      
        
        if self.windowGroup.current_question + 1 < self.windowGroup.quantity_questions:

            self.windowGroup.current_question += 1
            
            self.windowGroup.label.setText(
                self.windowGroup.list_questions[self.windowGroup.current_question])
            
            self.windowGroup.rbtn_1.setText(
                self.windowGroup.list_buttons[self.windowGroup.current_question][0])
            self.windowGroup.rbtn_2.setText(
                self.windowGroup.list_buttons[self.windowGroup.current_question][2])
            self.windowGroup.rbtn_3.setText(
                self.windowGroup.list_buttons[self.windowGroup.current_question][1])
            self.windowGroup.rbtn_4.setText(
                self.windowGroup.list_buttons[self.windowGroup.current_question][3])                
            
            self.set_stylesheet()            
        else:
            self.windowGroup.label.setText(
                '<h1 style="color: #FFDD93;">Гру закінчено, дякуємо за участь!</h1>'
            )             
            self.windowGroup.setEnabled(False)
            self.sender_click.setStyleSheet(
                "background-color: #D98C00; width: 780px; height: 49px;")
            self.set_stylesheet() 
            
        for rbtn in self.list_rbtn:    
            rbtn.setEnabled(True)
            rbtn.setStyleSheet("""
                QPushButton {
                    background-color: #D98C00; 
                    width: 620px; height: 49px;
                }
                QPushButton:hover {
                    background-color: #0082fc;
                    border: 2px solid #FFA6D5;
                }
            """)
            
        self.windowGroup.label.setAlignment(Qt.AlignCenter)   

    def clicked_5050(self):
        self.windowGroup.hint_5050.setEnabled(False)
        
        current_question = self.windowGroup.current_question
        list_yes_buttons = self.windowGroup.list_yes_buttons[current_question]
        list_5050 = [list_yes_buttons,]
        
        not_buttons = self.windowGroup.list_buttons[current_question]
        not_buttons.remove(list_yes_buttons)
        not_buttons = random.choices(not_buttons)

        list_5050.append(not_buttons[0])
        
        for rbtn in self.list_rbtn:
            if rbtn.text() in list_5050:
                pass
            else:
                rbtn.setEnabled(False)

        
    def clicked_audience(self):
        self.windowGroup.hint_audience.setEnabled(False)
        litter_yes = self.windowGroup.list_yes_buttons[
            self.windowGroup.current_question][0]
        img = self.dict_audience_img[litter_yes]
        
        self.audience_messageBox(img)
        
    def audience_messageBox(self, img):        
        window_audience = QMessageBox(self)
        window_audience.setWindowIcon(QIcon("audience_normal.png"))
        window_audience.setWindowTitle('Допомога зали') 

        window_audience.setIconPixmap(
            QPixmap(img).scaled(700, 700, Qt.KeepAspectRatio)
            )
        window_audience.exec_()   
        

if __name__ == "__main__":
    import sys
    app = QApplication(sys.argv)
    app.setStyleSheet("""
        QLabel {
            font-size: 20pt;
        }
        QPushButton { 
            font-size: 20pt;
            background-color: #ff8000;
        }
        #centralWidget {
            background-image: url(first.jpg);
        }
        #centeralMessage {
            backround-image: url(first.jpg);
        }
    """)
    w = MainWindow()          
    w.setWindowTitle('Million')  
    w.resize(1700, 770)
    w.move(125, 110)
    w.show()                           
    sys.exit(app.exec_())

第二个程序代码:

import sys
from PyQt5.QtWidgets import *
from PyQt5.QtGui import *
from PyQt5.QtCore import *
import webbrowser
import random 
import time


class WindowGroup(QWidget):
    def __init__(self):
        super().__init__()
        self.setObjectName('windowgroup')

        self.list_questions = [                  
            '<h1 style="color: rgb(185, 255, 0);">Як прізвище першого Президента України?</h1>',
            '<h1 style="color: rgb(185, 255, 0);">Як називають людину, що вважає за краще проводити вільний час дома?</h1>',
            '<h1 style="color: rgb(185, 255, 0);">Скільки лап у павука?</h1>',
            '<h1 style="color: rgb(185, 255, 0);">Хто на питання лорда Баскервіля "Що це"? відповіB: "Вівсянка, сер"?</h1>',
            '<h1 style="color: rgb(185, 255, 0);">Хто винайшов електричну лампочку?</h1>',
            '<h1 style="color: rgb(185, 255, 0);">У автомобілів який з цих країн міжнародний реєстраційний знак PL?</h1>',
            '<h1 style="color: rgb(185, 255, 0);">Який режисер зняв фільм "Політ над гніздом зозулі"?</h1>',
            '<h1 style="color: rgb(185, 255, 0);">Що виділяють бугорки на язиці кішки, коли вона умивається?</h1>',
            '<h1 style="color: rgb(185, 255, 0);">Якого троянського царевича убив Ахіл?</h1>',
            '<h1 style="color: rgb(185, 255, 0);">Яка столиця Іраку?</h1>',
            '<h1 style="color: rgb(185, 255, 0);">Столицею якої країни є місто Антананаріву?</h1>',
            '<h1 style="color: rgb(185, 255, 0);">Як називається кругла за формою картина або рельєф?</h1>',
            '<h1 style="color: rgb(185, 255, 0);">Знаменита українська фехтувальниця?</h1>',
            '<h1 style="color: rgb(185, 255, 0);">У якій мові програмування немає засобів роботи з файлами?</h1>',
            '<h1 style="color: rgb(185, 255, 0);">На якій відстані людина може відчути запах скунса?</h1>'
        ]

        self.quantity_questions = len(self.list_questions) 

        self.list_buttons = [                                     
            ['A: Ющенко', 'B: Кравчук', 'C: Кравченко', 'D: Кучма'],
            ['A: Домосід', 'B: Квартирний злодій', 'C: Домочадець', 'D: Домовий'],
            ['A: 4', 'B: 8', 'C: 3', 'D: 6'],
            ['A: Беломор', 'B: Блэкмор', 'C: Бэррімор', 'D: Берліоз'],
            ['A: Томас Едісон', 'B: Олександр Белл', 'C: Сер Джозеф Суон', 'D: Карл Бенц'],
            ['A: Польща', 'B: Нікарагуа', 'C: Нідерланди', 'D: Новій Зеландії'],
            ['A: Милош Форман', 'B: Роман Поланскі', 'C: Кшиштоф Кеслевский', 'D: Анджей Вайда'],
            ['A: Кадаревін', 'B: Кератин', 'C: Альбумін', 'D: Лецитін'],
            ['A: Гектор', 'B: Одісей', 'C: Паріс', 'D: Еней'],
            ['A: Аддис-Абеба', 'B: Багдад', 'C: Кабул', 'D: Тегеран'],
            ['A: Мадагаскар', 'B: Марокко', 'C: Мозамбік', 'D: Ангола'],
            ['A: Картуш', 'B: Тондо', 'C: Рондо', 'D: Плафон'],
            ['A: Ольга Харлан', 'B: Олеся Стефанко', 'C: Людмила Мілевич', 'D: Вікторія Сюмар'],
            ['A: JavaScript', 'B: PHP', 'C: C++', 'D: Delphi'],
            ['A: 2 км', 'B: 1,5 км', 'C: 1 км', 'D: 500 м'],
        ]
        self.list_yes_buttons = [                      
            'B: Кравчук',
            'A: Домосід',
            'B: 8',
            'C: Бэррімор',
            'A: Томас Едісон',
            'A: Польща',
            'A: Милош Форман',
            'B: Кератин',
            'A: Гектор',
            'B: Багдад',
            'A: Мадагаскар',
            'B: Тондо',
            'A: Ольга Харлан',
            'A: JavaScript',
            'B: 1,5 км',
        ]
        self.current_question = 0 

        self.label = QLabel(self.list_questions[self.current_question])

        self.radioGroupBox = QGroupBox('') 
        self.radioGroup = QButtonGroup() 

        self.rbtn_1 = QPushButton('A: Ющенко')
        self.rbtn_1.setFixedSize(740, 49)
        self.rbtn_2 = QPushButton('C: Кравченко')
        self.rbtn_2.setFixedSize(740, 49)
        self.rbtn_3 = QPushButton('B: Кравчук')
        self.rbtn_3.setFixedSize(740, 49)
        self.rbtn_4 = QPushButton('D: Кучма')
        self.rbtn_4.setFixedSize(740, 49) 

我不能输入更多,因为这是不可能的,但一切都和上一个程序完全一样

这两个程序只有问题、答案选项和答案不同,而且它们的代码都是一样的!!!

文件:

在此处输入图像描述 在此处输入图像描述 在此处输入图像描述 在此处输入图像描述

在此处输入图像描述 在此处输入图像描述

在此处输入图像描述

在此处输入图像描述

在此处输入图像描述

在此处输入图像描述

python
  • 2 个回答
  • 10 Views
Martin Hope
Nikita Khistov
Asked: 2022-06-04 17:59:34 +0000 UTC

根据当前问题的正确答案在 QMessageBox 中显示图像

  • 1

我不知道该放在哪里。点击第二个提示后,应该会显示一张有一定票数的图片,
但对我来说是这样显示的:点击提示,然后点击任意按钮,然后根据按下并显示图像的按钮。

编码:

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


class WindowGroup(QWidget):
    def __init__(self):
        super().__init__()
        self.setObjectName('windowgroup')

        self.list_questions = [                  
            '<h1 style="color: rgb(185, 255, 0);">Що мають на увазі кажучи: "пройшов вогонь, воду і мідні труби"?</h1>',
            '<h1 style="color: rgb(185, 255, 0);">Який материк найбільший?</h1>',
            '<h1 style="color: rgb(185, 255, 0);">Куди вказує червона стрілка компаса?</h1>',
            '<h1 style="color: rgb(185, 255, 0);">Який пігмент забарвлює листя в зелений колір?</h1>',
            '<h1 style="color: rgb(185, 255, 0);">Який препарат марно намагалися отримати середньовічні алхіміки?</h1>',
            '<h1 style="color: rgb(185, 255, 0);">Як правильно кликати гусака?</h1>',
            '<h1 style="color: rgb(185, 255, 0);">Якій кухні належить блюдо "форшмак"?</h1>',
            '<h1 style="color: rgb(185, 255, 0);">Яку рослину називають «живим світлофором»?</h1>',
            '<h1 style="color: rgb(185, 255, 0);">Що є туманністю Андромеди?</h1>',
            '<h1 style="color: rgb(185, 255, 0);">Назвіть офіційну мову Шрі-Ланки:</h1>',
            '<h1 style="color: rgb(185, 255, 0);">Столицею якої країни є місто Богота?</h1>',
            '<h1 style="color: rgb(185, 255, 0);">Які літальні апарати конструював Отто Ліліенталь?</h1>',
            '<h1 style="color: rgb(185, 255, 0);">У якому столітті в Китаї почали добувати залізо?</h1>',
            '<h1 style="color: rgb(185, 255, 0);">У якій мові програмування немає засобів роботи з файлами?</h1>',
            '<h1 style="color: rgb(185, 255, 0);">У яких тварин офіційно реєструвалися сонячні удари, подібні до людських?</h1>',
        ]

        self.quantity_questions = len(self.list_questions) 

        self.list_buttons = [                                     
            ['A: Навчання', 'В: Самогон', 'C: Стаж', 'D: Досвід'],
            ['A: Північна Америка', 'В: Південна Америка', 'C: Африка', 'D: Євразія'],
            ['A: Північ', 'В: Схід', 'C: Захід', 'D: Південь'],
            ['A: Каротин', 'В: Антоціан', 'C: Хлорофіл', 'D: Танін'],
            ['A: Настоянку мудрості', 'В: Засіб від лупи', 'C: Еліксир життя', 'D: Напій сміливості'],
            ['A: Киць-киць', 'В: Гуль-гуль', 'C: Тега-тега', 'D: Курчат-курчат'],
            ['A: Єврейській', 'В: Грузинській', 'C: Китайській', 'D: Індійській'],
            ['A: Акаліфа', 'В: Медуниця', 'C: Маранта', 'D: Кротон'],
            ['A: Метеорит', 'В: Зірка', "С: Сузір'я", 'D: Галактика'],
            ['A: Урду', 'В: Сінгальский', 'C: Бенгальський', 'D: Брахми'],
            ['A: Чилі', 'В: Перу' ,'C: Аргентина', 'D: Колумбія'],
            ['A: Вертольоти', 'В: Дирижаблі', 'C: Літаки-біплани', 'D: Планери'],
            ['A: 4 вік до н.е', 'В: 2 вік', 'C: 3 вік', 'D: 5 вік до н.е.'],
            ['A: PHP', 'В: Delphi', 'C: C++', 'D: JavaScript'],
            ['A: У собак', 'В: У кішок', 'C: У свиней', 'D: У кроликів']
        ]
        self.list_yes_buttons = [                      
            'D: Досвід',
            'D: Євразія',
            'D: Південь',
            'C: Хлорофіл',
            'C: Еліксир життя',
            'C: Тега-тега',
            'A: Єврейській',
            'В: Медуниця',
            'D: Галактика',
            'В: Сінгальский',
            'D: Колумбія',
            'D: Планери',
            'D: 5 вік до н.е.',
            'D: JavaScript',
            'D: У кроликів'
        ]
        self.current_question = 0 

        self.label = QLabel(self.list_questions[self.current_question])

        self.radioGroupBox = QGroupBox('') 
        self.radioGroup = QButtonGroup() 

        self.rbtn_1 = QPushButton('A: Навчання')
        self.rbtn_1.setFixedSize(740, 49)
        self.rbtn_2 = QPushButton('В: Самогон')
        self.rbtn_2.setFixedSize(740, 49)
        self.rbtn_3 = QPushButton('C: Стаж')
        self.rbtn_3.setFixedSize(740, 49)
        self.rbtn_4 = QPushButton('D: Досвід')
        self.rbtn_4.setFixedSize(740, 49) 

        self.radioGroup.addButton(self.rbtn_1)
        self.radioGroup.addButton(self.rbtn_2)
        self.radioGroup.addButton(self.rbtn_3)
        self.radioGroup.addButton(self.rbtn_4)

        self.hint_5050 = QPushButton(self)
        self.hint_5050.setIcon(QIcon('5050_normal.png'))
        self.hint_5050.setIconSize(QSize(105, 90))
        self.hint_5050.setFixedSize(120, 100)

        self.hint_audience = QPushButton(self)
        self.hint_audience.setIcon(QIcon('audience_normal.png'))
        self.hint_audience.setIconSize(QSize(105, 90))
        self.hint_audience.setFixedSize(120, 100)

        self.hint_expert = QPushButton(self)
        self.hint_expert.setIcon(QIcon('expert_normal.png'))
        self.hint_expert.setIconSize(QSize(105, 90))
        self.hint_expert.setFixedSize(120, 100)      

        self.hint_switch = QPushButton(self)
        self.hint_switch.setIcon(QIcon('switch_2_normal.png'))
        self.hint_switch.setIconSize(QSize(105, 90))
        self.hint_switch.setFixedSize(120, 100)         

        layout_ans1 = QHBoxLayout()  
        layout_ans2 = QVBoxLayout()
        layout_ans3 = QVBoxLayout()
        layout_ans2.addWidget(self.rbtn_1) 
        layout_ans2.addWidget(self.rbtn_2)
        layout_ans3.addWidget(self.rbtn_3) 
        layout_ans3.addWidget(self.rbtn_4)

        layout_ans1.addLayout(layout_ans2)
        layout_ans1.addLayout(layout_ans3) 

        self.radioGroupBox.setLayout(layout_ans1)

        layout = QVBoxLayout(self)
        layout.addWidget(self.label, alignment=Qt.AlignCenter)
        layout.addWidget(self.radioGroupBox)


class MainWindow(QMainWindow):
    def __init__(self):
        super().__init__()

        self.centralWidget = QWidget()                                  
        self.centralWidget.setObjectName('centralWidget')          
        self.setCentralWidget(self.centralWidget)  

        self.num = 0

        self.question = QLabel('<h1 style="color: rgb(250, 55, 55);">Правила гри')

        self.rules = QLabel('''Гра "Хто хоче стати мільйонером?" 
\
Ви повинні правильно відповісти на низку питань \
з кількома варіантами відповідей, щоб заробити 3.000.000 грн. \
Всього 15 питань, кожне питання коштує певної суми грошей, \
учасники не мають жодних тимчасових обмежень для надання \
відповіді. Учасник також отримуює 4 види підказок, щоб допомогти собі, \
якщо вони застрягли на конкретному питанні.  
\
Більше ознайомитися з правилами можна, натиснувши на кнопку. 
\
Хай щастить!''')
        self.rules.setStyleSheet("""
        font: bold;
        color: rgb(185, 255, 0);
    """)
        self.rules.setFixedSize(1010,450)
        self.rules.setObjectName('rules')
        self.rules.setWordWrap(True)    

        self.button_rules = QPushButton('Правила')
        self.button_rules.clicked.connect(lambda: webbrowser.open('https://ru.wwbm.com/rules'))
        self.button_rules.setFixedSize(300,50)


        self.button_start = QPushButton('Почати', clicked=self._start)  
        self.button_start.setFixedSize(300,50)
        
        
        self.layout = QVBoxLayout(self.centralWidget)
        
        self.lineH1 = QHBoxLayout()
        lineH2 = QHBoxLayout()
        lineH3 = QHBoxLayout()
        self.lineH1.addWidget(self.question, alignment=Qt.AlignHCenter)
        lineH2.addWidget(self.rules)
        lineH3.addWidget(self.button_rules, alignment=Qt.AlignCenter)
        lineH3.addWidget(self.button_start, alignment=Qt.AlignCenter)
        self.layout.addLayout(self.lineH1)
        self.layout.addWidget(self.rules, alignment=Qt.AlignHCenter)
        self.layout.addLayout(lineH3)


        
        self.timer = QTimer(self)
        self.timer.timeout.connect(self.update_timer)

        self.windowGroup = WindowGroup()

        self.windowGroup.rbtn_1.clicked.connect(self.on_clicked)
        self.windowGroup.rbtn_2.clicked.connect(self.on_clicked)
        self.windowGroup.rbtn_3.clicked.connect(self.on_clicked)
        self.windowGroup.rbtn_4.clicked.connect(self.on_clicked)

        self.list_rbtn = [
            self.windowGroup.rbtn_1,
            self.windowGroup.rbtn_2,
            self.windowGroup.rbtn_3,
            self.windowGroup.rbtn_4,
        ] 
        self.correct_answer = '<h1 style="color: #4E9F3D;">Це вірна відповідь!</h1>'
        self.wrong_answer = '<h1 style="color: #DA0037;">Це НЕ вірна відповідь!</h1>'

        self.windowGroup.hint_5050.clicked.connect(self.clicked_5050)

        self.windowGroup.hint_audience.clicked.connect(self.audience_messageBox)

        self.hint_audience = False   

    def on_clicked(self):
        self.windowGroup.setEnabled(False)
        sender = self.sender()  
        self.sender_click = sender
        if self.hint_audience:
            self.audience_messageBox(sender.text()[0])
            self.windowGroup.hint_audience.setEnabled(True)
            self.hint_audience = False

        if sender.text() in self.windowGroup.list_yes_buttons:
            sender.setStyleSheet("background-color: green;")
            self.windowGroup.label.setText(
                f'{self.windowGroup.list_questions[self.windowGroup.current_question]} \
                {self.correct_answer}' 
            )                 
        else:
            sender.setStyleSheet("background-color: red;") 
            self.windowGroup.label.setText(
                f'{self.windowGroup.list_questions[self.windowGroup.current_question]} \
                {self.wrong_answer}' 
            )         
            self.windowGroup.current_question = self.windowGroup.quantity_questions
            self.num = 3    
        self.windowGroup.label.setAlignment(Qt.AlignCenter)

        QTimer.singleShot(3000, self.third)  

    def set_stylesheet(self):  
        self.setStyleSheet("""
            QLabel, QPushButton {
                font-size: 20pt;
            }
            #rules { 
                background-color: #ccffbd;
            }
            #windowgroup > QLabel { 
                font-size: 11pt;
            }
            #windowgroup > QGroupBox { 
                background-color: #a44500;
                font-size: 20pt;
                width: 620px; height: 49px;
            }
            QPushButton {
                background-color: #D98C00;
                font-size: 34px;
            }
            QPushButton:hover {
                background-color: #0082fc;
                border: 2px solid #FFA6D5;
            }
            #centralWidget {
                background-image: url(first.jpg);
            }
            #window_audience {
                backround-image: url(first.jpg);
            }
            """) 
        
    def update_timer(self):        
        self.question.setText(f'<h1 style="color: rgb(250, 55, 55);">{self.num}</h1>')
        if self.num == 0:
            self.timer.stop()
            
            self.set_stylesheet()                 

            self.question.setPixmap(QPixmap("million.png"))
            self.num = 3
            self.rules.hide()
            self.button_start.hide()
            self.button_rules.hide()
            self.layout.addWidget(self.windowGroup, alignment=Qt.AlignHCenter)

            self.lineH1.insertStretch(0)
            self.lineH1.insertWidget(1, self.windowGroup.hint_5050)
            self.lineH1.insertStretch(2)
            self.lineH1.insertWidget(3, self.windowGroup.hint_audience)
            self.lineH1.insertStretch(4)
            self.lineH1.insertStretch(-1)
            self.lineH1.insertWidget(-1, self.windowGroup.hint_expert)
            self.lineH1.insertStretch(-1)
            self.lineH1.insertWidget(-1, self.windowGroup.hint_switch)
            self.lineH1.insertStretch(-1)

            return            
        self.num -= 1        

    def _start(self):
        self.timer.start(1000)     

    def third(self):
        self.windowGroup.setEnabled(True)  
        self.windowGroup.hint_5050.setEnabled(True)      
        
        if self.windowGroup.current_question + 1 < self.windowGroup.quantity_questions:

            self.windowGroup.current_question += 1
            
            self.windowGroup.label.setText(
                self.windowGroup.list_questions[self.windowGroup.current_question])
            
            self.windowGroup.rbtn_1.setText(
                self.windowGroup.list_buttons[self.windowGroup.current_question][0])
            self.windowGroup.rbtn_2.setText(
                self.windowGroup.list_buttons[self.windowGroup.current_question][2])
            self.windowGroup.rbtn_3.setText(
                self.windowGroup.list_buttons[self.windowGroup.current_question][1])
            self.windowGroup.rbtn_4.setText(
                self.windowGroup.list_buttons[self.windowGroup.current_question][3])                
            
            self.set_stylesheet()            
        else:
            self.windowGroup.label.setText(
                '<h1 style="color: #FFDD93;">Гру закінчено, дякуємо за участь!</h1>'
            )             
            self.windowGroup.setEnabled(False)
            self.sender_click.setStyleSheet(
                "background-color: #D98C00; width: 780px; height: 49px;")
            self.set_stylesheet() 
            
        for rbtn in self.list_rbtn:    
            rbtn.setEnabled(True)
            rbtn.setStyleSheet("""
                QPushButton {
                    background-color: #D98C00; 
                    width: 620px; height: 49px;
                }
                QPushButton:hover {
                    background-color: #0082fc;
                    border: 2px solid #FFA6D5;
                }
            """)
            
        self.windowGroup.label.setAlignment(Qt.AlignCenter)   

    def clicked_5050(self):
        self.windowGroup.hint_5050.setEnabled(False)
        
        current_question = self.windowGroup.current_question
        list_yes_buttons = self.windowGroup.list_yes_buttons[current_question]
        list_5050 = [list_yes_buttons,]
        
        not_buttons = self.windowGroup.list_buttons[current_question]
        not_buttons.remove(list_yes_buttons)
        not_buttons = random.choices(not_buttons)

        list_5050.append(not_buttons[0])
        
        for rbtn in self.list_rbtn:
            if rbtn.text() in list_5050:
                pass
            else:
                rbtn.setEnabled(False)

        
    def clicked_audience(self):
        self.windowGroup.hint_audience.setEnabled(False)
        self.hint_audience = True
        
    def audience_messageBox(self, letter):        
        window_audience = QMessageBox(self)
        window_audience.setWindowIcon(QIcon("audience_normal.png"))
        window_audience.setWindowTitle('Допомога зали') 

        if letter == 'D':
            window_audience.setIconPixmap(
                QPixmap("audience_D.png").scaled(700, 700, Qt.KeepAspectRatio)
            )
        elif letter == 'A':
            window_audience.setIconPixmap(
                QPixmap("audience_A.png").scaled(700, 700, Qt.KeepAspectRatio)
            )
        elif letter == 'B':
            window_audience.setIconPixmap(
                QPixmap("audience_B.png").scaled(700, 700, Qt.KeepAspectRatio)
            )
        elif letter == 'C':
            window_audience.setIconPixmap(
                QPixmap("audience_C.png").scaled(700, 700, Qt.KeepAspectRatio)
            )
            
        window_audience.exec_()   

        
        

if __name__ == "__main__":
    import sys
    app = QApplication(sys.argv)
    app.setStyleSheet("""
        QLabel {
            font-size: 20pt;
        }
        QPushButton { 
            font-size: 20pt;
            background-color: #ff8000;
        }
        #centralWidget {
            background-image: url(first.jpg);
        }
        #centeralMessage {
            backround-image: url(first.jpg);
        }
    """)
    w = MainWindow()          
    w.setWindowTitle('Million')  
    w.resize(1700, 770)
    w.move(125, 110)
    w.show()                           
    sys.exit(app.exec_())

文件:

在此处输入图像描述 在此处输入图像描述 在此处输入图像描述 在此处输入图像描述

在此处输入图像描述 在此处输入图像描述

在此处输入图像描述

在此处输入图像描述

在此处输入图像描述

在此处输入图像描述

python
  • 1 个回答
  • 10 Views
Martin Hope
Nikita Khistov
Asked: 2022-06-04 05:11:16 +0000 UTC

如何根据单击特定响应按钮在 QMessageBox 中显示所需的图像

  • 1

点击提示后 在此处输入图像描述

根据正确答案显示特定图片。

我在一个函数中做了

def clicked_audience(self):
    if audience_image
       ...

在哪里audience_image = self.windowGroup.list_yes_buttons[self.windowGroup.current_question][0]

也就是说,它等于数字0(第一)下的正确答案。
我不需要写if self.windowGroup.list_yes_buttons[self.windowGroup.current_question][9] or self.windowGroup.list_yes_buttons[self.windowGroup.current_question][8]: or self.windowGroup.list_yes_buttons[self.windowGroup.current_question][7]:

比如,在这些数字下面的列表中,这封信有正确的答案А,我想把它缩短if А,那么它会很大,好吧,或者如果它不成功,那就不是命运。

编码:

import sys
from PyQt5.QtWidgets import *
from PyQt5.QtGui import *
from PyQt5.QtCore import *
import webbrowser
import random 
import time


class WindowGroup(QWidget):
    def __init__(self):
        super().__init__()
        self.setObjectName('windowgroup')

        self.list_questions = [                  
            '<h1 style="color: rgb(185, 255, 0);">Що мають на увазі кажучи: "пройшов вогонь, воду і мідні труби"?</h1>',
            '<h1 style="color: rgb(185, 255, 0);">Який материк найбільший?</h1>',
            '<h1 style="color: rgb(185, 255, 0);">Куди вказує червона стрілка компаса?</h1>',
            '<h1 style="color: rgb(185, 255, 0);">Який пігмент забарвлює листя в зелений колір?</h1>',
            '<h1 style="color: rgb(185, 255, 0);">Який препарат марно намагалися отримати середньовічні алхіміки?</h1>',
            '<h1 style="color: rgb(185, 255, 0);">Як правильно кликати гусака?</h1>',
            '<h1 style="color: rgb(185, 255, 0);">Якій кухні належить блюдо "форшмак"?</h1>',
            '<h1 style="color: rgb(185, 255, 0);">Яку рослину називають «живим світлофором»?</h1>',
            '<h1 style="color: rgb(185, 255, 0);">Що є туманністю Андромеди?</h1>',
            '<h1 style="color: rgb(185, 255, 0);">Назвіть офіційну мову Шрі-Ланки:</h1>',
            '<h1 style="color: rgb(185, 255, 0);">Столицею якої країни є місто Богота?</h1>',
            '<h1 style="color: rgb(185, 255, 0);">Які літальні апарати конструював Отто Ліліенталь?</h1>',
            '<h1 style="color: rgb(185, 255, 0);">У якому столітті в Китаї почали добувати залізо?</h1>',
            '<h1 style="color: rgb(185, 255, 0);">У якій мові програмування немає засобів роботи з файлами?</h1>',
            '<h1 style="color: rgb(185, 255, 0);">У яких тварин офіційно реєструвалися сонячні удари, подібні до людських?</h1>',
        ]

        self.quantity_questions = len(self.list_questions) 

        self.list_buttons = [                                     
            ['А: Навчання', 'В: Самогон', 'С: Стаж', 'D: Досвід'],
            ['А: Північна Америка', 'В: Південна Америка', 'С: Африка', 'D: Євразія'],
            ['А: Північ', 'В: Схід', 'С: Захід', 'D: Південь'],
            ['А: Каротин', 'В: Антоціан', 'С: Хлорофіл', 'D: Танін'],
            ['А: Настоянку мудрості', 'В: Засіб від лупи', 'С: Еліксир життя', 'D: Напій сміливості'],
            ['А: Киць-киць', 'В: Гуль-гуль', 'С: Тега-тега', 'D: Курчат-курчат'],
            ['А: Єврейській', 'В: Грузинській', 'С: Китайській', 'D: Індійській'],
            ['А: Акаліфа', 'В: Медуниця', 'С: Маранта', 'D: Кротон'],
            ['А: Метеорит', 'В: Зірка', "С: Сузір'я", 'D: Галактика'],
            ['А: Урду', 'В: Сінгальский', 'С: Бенгальський', 'D: Брахми'],
            ['А: Чилі', 'В: Перу' ,'С: Аргентина', 'D: Колумбія'],
            ['А: Вертольоти', 'В: Дирижаблі', 'С: Літаки-біплани', 'D: Планери'],
            ['А: 4 вік до н.е', 'В: 2 вік', 'С: 3 вік', 'D: 5 вік до н.е.'],
            ['А: PHP', 'В: Delphi', 'С: C++', 'D: JavaScript'],
            ['А: У собак', 'В: У кішок', 'С: У свиней', 'D: У кроликів']
        ]
        self.list_yes_buttons = [                      
            'D: Досвід',
            'D: Євразія',
            'D: Південь',
            'С: Хлорофіл',
            'С: Еліксир життя',
            'С: Тега-тега',
            'А: Єврейській',
            'В: Медуниця',
            'D: Галактика',
            'В: Сінгальский',
            'D: Колумбія',
            'D: Планери',
            'D: 5 вік до н.е.',
            'D: JavaScript',
            'D: У кроликів'
        ]
        self.current_question = 0 

        self.label = QLabel(self.list_questions[self.current_question])

        self.radioGroupBox = QGroupBox('') 
        self.radioGroup = QButtonGroup() 

        self.rbtn_1 = QPushButton('А: Навчання')
        self.rbtn_1.setFixedSize(740, 49)
        self.rbtn_2 = QPushButton('В: Самогон')
        self.rbtn_2.setFixedSize(740, 49)
        self.rbtn_3 = QPushButton('С: Стаж')
        self.rbtn_3.setFixedSize(740, 49)
        self.rbtn_4 = QPushButton('D: Досвід')
        self.rbtn_4.setFixedSize(740, 49) 

        self.radioGroup.addButton(self.rbtn_1)
        self.radioGroup.addButton(self.rbtn_2)
        self.radioGroup.addButton(self.rbtn_3)
        self.radioGroup.addButton(self.rbtn_4)

        self.hint_5050 = QPushButton(self)
        self.hint_5050.setIcon(QIcon('5050_normal.png'))
        self.hint_5050.setIconSize(QSize(105, 90))
        self.hint_5050.setFixedSize(120, 100)

        self.hint_audience = QPushButton(self)
        self.hint_audience.setIcon(QIcon('audience_normal.png'))
        self.hint_audience.setIconSize(QSize(105, 90))
        self.hint_audience.setFixedSize(120, 100)

        self.hint_expert = QPushButton(self)
        self.hint_expert.setIcon(QIcon('expert_normal.png'))
        self.hint_expert.setIconSize(QSize(105, 90))
        self.hint_expert.setFixedSize(120, 100)      

        self.hint_switch = QPushButton(self)
        self.hint_switch.setIcon(QIcon('switch_2_normal.png'))
        self.hint_switch.setIconSize(QSize(105, 90))
        self.hint_switch.setFixedSize(120, 100)         

        layout_ans1 = QHBoxLayout()  
        layout_ans2 = QVBoxLayout()
        layout_ans3 = QVBoxLayout()
        layout_ans2.addWidget(self.rbtn_1) 
        layout_ans2.addWidget(self.rbtn_2)
        layout_ans3.addWidget(self.rbtn_3) 
        layout_ans3.addWidget(self.rbtn_4)

        layout_ans1.addLayout(layout_ans2)
        layout_ans1.addLayout(layout_ans3) 

        self.radioGroupBox.setLayout(layout_ans1)

        layout = QVBoxLayout(self)
        layout.addWidget(self.label, alignment=Qt.AlignCenter)
        layout.addWidget(self.radioGroupBox)


class MainWindow(QMainWindow):
    def __init__(self):
        super().__init__()

        self.centralWidget = QWidget()                                  
        self.centralWidget.setObjectName('centralWidget')          
        self.setCentralWidget(self.centralWidget)  

        self.num = 3

        self.question = QLabel('<h1 style="color: rgb(250, 55, 55);">Правила гри')

        self.rules = QLabel('''Гра "Хто хоче стати мільйонером?" 
\
Ви повинні правильно відповісти на низку питань \
з кількома варіантами відповідей, щоб заробити 3.000.000 грн. \
Всього 15 питань, кожне питання коштує певної суми грошей, \
учасники не мають жодних тимчасових обмежень для надання \
відповіді. Учасник також отримуює 4 види підказок, щоб допомогти собі, \
якщо вони застрягли на конкретному питанні.  
\
Більше ознайомитися з правилами можна, натиснувши на кнопку. 
\
Хай щастить!''')
        self.rules.setStyleSheet("""
        font: bold;
        color: rgb(185, 255, 0);
    """)
        self.rules.setFixedSize(1010,450)
        self.rules.setObjectName('rules')
        self.rules.setWordWrap(True)    

        self.button_rules = QPushButton('Правила')
        self.button_rules.clicked.connect(lambda: webbrowser.open('https://ru.wwbm.com/rules'))
        self.button_rules.setFixedSize(300,50)


        self.button_start = QPushButton('Почати', clicked=self._start)  
        self.button_start.setFixedSize(300,50)
        
        
        self.layout = QVBoxLayout(self.centralWidget)
        
        self.lineH1 = QHBoxLayout()
        lineH2 = QHBoxLayout()
        lineH3 = QHBoxLayout()
        self.lineH1.addWidget(self.question, alignment=Qt.AlignHCenter)
        lineH2.addWidget(self.rules)
        lineH3.addWidget(self.button_rules, alignment=Qt.AlignCenter)
        lineH3.addWidget(self.button_start, alignment=Qt.AlignCenter)
        self.layout.addLayout(self.lineH1)
        self.layout.addWidget(self.rules, alignment=Qt.AlignHCenter)
        self.layout.addLayout(lineH3)


        
        self.timer = QTimer(self)
        self.timer.timeout.connect(self.update_timer)

        self.windowGroup = WindowGroup()

        self.windowGroup.rbtn_1.clicked.connect(self.on_clicked)
        self.windowGroup.rbtn_2.clicked.connect(self.on_clicked)
        self.windowGroup.rbtn_3.clicked.connect(self.on_clicked)
        self.windowGroup.rbtn_4.clicked.connect(self.on_clicked)

        self.list_rbtn = [
            self.windowGroup.rbtn_1,
            self.windowGroup.rbtn_2,
            self.windowGroup.rbtn_3,
            self.windowGroup.rbtn_4,
        ] 
        self.correct_answer = '<h1 style="color: #4E9F3D;">Це вірна відповідь!</h1>'
        self.wrong_answer = '<h1 style="color: #DA0037;">Це НЕ вірна відповідь!</h1>'

        self.windowGroup.hint_5050.clicked.connect(self.clicked_5050)
        self.windowGroup.hint_audience.clicked.connect(self.clicked_audience)

    def on_clicked(self):
        self.windowGroup.setEnabled(False)
        sender = self.sender()  
        self.sender_click = sender
        if sender.text() in self.windowGroup.list_yes_buttons:
            sender.setStyleSheet("background-color: green;")
            self.windowGroup.label.setText(
                f'{self.windowGroup.list_questions[self.windowGroup.current_question]} \
                {self.correct_answer}' 
            )                 
        else:
            sender.setStyleSheet("background-color: red;") 
            self.windowGroup.label.setText(
                f'{self.windowGroup.list_questions[self.windowGroup.current_question]} \
                {self.wrong_answer}' 
            )         
            self.windowGroup.current_question = self.windowGroup.quantity_questions
            self.num = 3    
        self.windowGroup.label.setAlignment(Qt.AlignCenter)

        QTimer.singleShot(3000, self.third)  

    def set_stylesheet(self):  
        self.setStyleSheet("""
            QLabel, QPushButton {
                font-size: 20pt;
            }
            #rules { 
                background-color: #ccffbd;
            }
            #windowgroup > QLabel { 
                font-size: 11pt;
            }
            #windowgroup > QGroupBox { 
                background-color: #a44500;
                font-size: 20pt;
                width: 620px; height: 49px;
            }
            QPushButton {
                background-color: #D98C00;
                font-size: 34px;
            }
            QPushButton:hover {
                background-color: #0082fc;
                border: 2px solid #FFA6D5;
            }
            #centralWidget {
                background-image: url(first.jpg);
            }
            #window_audience {
                backround-image: url(first.jpg);
            }
            """) 
        
    def update_timer(self):        
        self.question.setText(f'<h1 style="color: rgb(250, 55, 55);">{self.num}</h1>')
        if self.num == 0:
            self.timer.stop()
            
            self.set_stylesheet()                 

            self.question.setPixmap(QPixmap("million.png"))
            self.num = 3
            self.rules.hide()
            self.button_start.hide()
            self.button_rules.hide()
            self.layout.addWidget(self.windowGroup, alignment=Qt.AlignHCenter)

            self.lineH1.insertStretch(0)
            self.lineH1.insertWidget(1, self.windowGroup.hint_5050)
            self.lineH1.insertStretch(2)
            self.lineH1.insertWidget(3, self.windowGroup.hint_audience)
            self.lineH1.insertStretch(4)
            self.lineH1.insertStretch(-1)
            self.lineH1.insertWidget(-1, self.windowGroup.hint_expert)
            self.lineH1.insertStretch(-1)
            self.lineH1.insertWidget(-1, self.windowGroup.hint_switch)
            self.lineH1.insertStretch(-1)

            return            
        self.num -= 1        

    def _start(self):
        self.timer.start(1000)     

    def third(self):
        self.windowGroup.setEnabled(True)  
        self.windowGroup.hint_5050.setEnabled(True)      
        
        if self.windowGroup.current_question + 1 < self.windowGroup.quantity_questions:

            self.windowGroup.current_question += 1
            
            self.windowGroup.label.setText(
                self.windowGroup.list_questions[self.windowGroup.current_question])
            
            self.windowGroup.rbtn_1.setText(
                self.windowGroup.list_buttons[self.windowGroup.current_question][0])
            self.windowGroup.rbtn_2.setText(
                self.windowGroup.list_buttons[self.windowGroup.current_question][2])
            self.windowGroup.rbtn_3.setText(
                self.windowGroup.list_buttons[self.windowGroup.current_question][1])
            self.windowGroup.rbtn_4.setText(
                self.windowGroup.list_buttons[self.windowGroup.current_question][3])                
            
            self.set_stylesheet()            
        else:
            self.windowGroup.label.setText(
                '<h1 style="color: #FFDD93;">Гру закінчено, дякуємо за участь!</h1>'
            )             
            self.windowGroup.setEnabled(False)
            self.sender_click.setStyleSheet(
                "background-color: #D98C00; width: 780px; height: 49px;")
            self.set_stylesheet() 
            
        for rbtn in self.list_rbtn:    
            rbtn.setEnabled(True)
            rbtn.setStyleSheet("""
                QPushButton {
                    background-color: #D98C00; 
                    width: 620px; height: 49px;
                }
                QPushButton:hover {
                    background-color: #0082fc;
                    border: 2px solid #FFA6D5;
                }
            """)
            
        self.windowGroup.label.setAlignment(Qt.AlignCenter)   

    def clicked_5050(self):
        self.windowGroup.hint_5050.setEnabled(False)
        
        current_question = self.windowGroup.current_question
        list_yes_buttons = self.windowGroup.list_yes_buttons[current_question]
        list_5050 = [list_yes_buttons,]
        
        not_buttons = self.windowGroup.list_buttons[current_question]
        not_buttons.remove(list_yes_buttons)
        not_buttons = random.choices(not_buttons)

        list_5050.append(not_buttons[0])
        
        for rbtn in self.list_rbtn:
            if rbtn.text() in list_5050:
                pass
            else:
                rbtn.setEnabled(False)

        
    def clicked_audience(self):
        self.windowGroup.hint_audience.setEnabled(False)

        window_audience = QMessageBox(self)
        window_audience.setWindowIcon(QIcon("audience_normal.png"))
        window_audience.setWindowTitle('Допомога зали') 
        audience_image = self.windowGroup.list_yes_buttons[self.windowGroup.current_question][0] 

        
        if audience_image:
            window_audience.setIconPixmap(
                QPixmap("audience_D.png").scaled(700, 700, Qt.KeepAspectRatio)
            )
        elif self.windowGroup.list_yes_buttons[self.windowGroup.current_question][9]:
            window_audience.setIconPixmap(
                QPixmap("audience_A.png").scaled(700, 700, Qt.KeepAspectRatio)
            )
        window_audience.exec_()  

        
        

if __name__ == "__main__":
    import sys
    app = QApplication(sys.argv)
    app.setStyleSheet("""
        QLabel {
            font-size: 20pt;
        }
        QPushButton { 
            font-size: 20pt;
            background-color: #ff8000;
        }
        #centralWidget {
            background-image: url(first.jpg);
        }
        #centeralMessage {
            backround-image: url(first.jpg);
        }
    """)
    w = MainWindow()          
    w.setWindowTitle('Million')  
    w.resize(1700, 770)
    w.move(125, 110)
    w.show()                           
    sys.exit(app.exec_())

文件:

在此处输入图像描述 在此处输入图像描述 在此处输入图像描述 在此处输入图像描述

在此处输入图像描述 在此处输入图像描述

在此处输入图像描述

在此处输入图像描述

在此处输入图像描述

在此处输入图像描述

python
  • 1 个回答
  • 10 Views
Martin Hope
Nikita Khistov
Asked: 2022-06-03 19:27:32 +0000 UTC

将图像添加到 QMessageBox

  • 1

有必要点击第二个提示后在此处输入图像描述

QMessageBox()将打开一个带有图像的新窗口。

我试过了,图片资源的路径在messagebox.setIconPixmap(QPixmap(":/images/image_file))哪里。image_file但它没有。

然后我尝试了:

self.window_audience = QMessageBox()
self.window_audience.setWindowTitle('Допомога зали')                                 
self.window_audience.setObjectName('centralMessage')          
self.window_audience.exec_()

并setStyleSheet补充说:

#centeralMessage {
    backround-image: url(first.jpg);
}

但它也没有成功。有可能以某种方式做到这一点吗?

编码:

import sys
from PyQt5.QtWidgets import *
from PyQt5.QtGui import *
from PyQt5.QtCore import *
import webbrowser
import random 
import time


class WindowGroup(QWidget):
    def __init__(self):
        super().__init__()
        self.setObjectName('windowgroup')

        self.list_questions = [                  
            '<h1 style="color: rgb(185, 255, 0);">Що мають на увазі кажучи: "пройшов вогонь, воду і мідні труби"?</h1>',
            '<h1 style="color: rgb(185, 255, 0);">Який материк найбільший?</h1>',
            '<h1 style="color: rgb(185, 255, 0);">Куди вказує червона стрілка компаса?</h1>',
            '<h1 style="color: rgb(185, 255, 0);">Який пігмент забарвлює листя в зелений колір?</h1>',
            '<h1 style="color: rgb(185, 255, 0);">Який препарат марно намагалися отримати середньовічні алхіміки?</h1>',
            '<h1 style="color: rgb(185, 255, 0);">Як правильно кликати гусака?</h1>',
            '<h1 style="color: rgb(185, 255, 0);">Якій кухні належить блюдо "форшмак"?</h1>',
            '<h1 style="color: rgb(185, 255, 0);">Яку рослину називають «живим світлофором»?</h1>',
            '<h1 style="color: rgb(185, 255, 0);">Що є туманністю Андромеди?</h1>',
            '<h1 style="color: rgb(185, 255, 0);">Назвіть офіційну мову Шрі-Ланки:</h1>',
            '<h1 style="color: rgb(185, 255, 0);">Столицею якої країни є місто Богота?</h1>',
            '<h1 style="color: rgb(185, 255, 0);">Які літальні апарати конструював Отто Ліліенталь?</h1>',
            '<h1 style="color: rgb(185, 255, 0);">У якому столітті в Китаї почали добувати залізо?</h1>',
            '<h1 style="color: rgb(185, 255, 0);">У якій мові програмування немає засобів роботи з файлами?</h1>',
            '<h1 style="color: rgb(185, 255, 0);">У яких тварин офіційно реєструвалися сонячні удари, подібні до людських?</h1>',
        ]

        self.quantity_questions = len(self.list_questions) 

        self.list_buttons = [                                     
            ['А: Навчання', 'В: Самогон', 'С: Стаж', 'D: Досвід'],
            ['А: Північна Америка', 'В: Південна Америка', 'С: Африка', 'D: Євразія'],
            ['А: Північ', 'В: Схід', 'С: Захід', 'D: Південь'],
            ['А: Каротин', 'В: Антоціан', 'С: Хлорофіл', 'D: Танін'],
            ['А: Настоянку мудрості', 'В: Засіб від лупи', 'С: Еліксир життя', 'D: Напій сміливості'],
            ['А: Киць-киць', 'В: Гуль-гуль', 'С: Тега-тега', 'D: Курчат-курчат'],
            ['А: Єврейській', 'В: Грузинській', 'С: Китайській', 'D: Індійській'],
            ['А: Акаліфа', 'В: Медуниця', 'С: Маранта', 'D: Кротон'],
            ['А: Метеорит', 'В: Зірка', "С: Сузір'я", 'D: Галактика'],
            ['А: Урду', 'В: Сінгальский', 'С: Бенгальський', 'D: Брахми'],
            ['А: Чилі', 'В: Перу' ,'С: Аргентина', 'D: Колумбія'],
            ['А: Вертольоти', 'В: Дирижаблі', 'С: Літаки-біплани', 'D: Планери'],
            ['А: 4 вік до н.е', 'В: 2 вік', 'С: 3 вік', 'D: 5 вік до н.е.'],
            ['А: PHP', 'В: Delphi', 'С: C++', 'D: JavaScript'],
            ['А: У собак', 'В: У кішок', 'С: У свиней', 'D: У кроликів']
        ]
        self.list_yes_buttons = [                      
            'D: Досвід',
            'D: Євразія',
            'D: Південь',
            'С: Хлорофіл',
            'С: Еліксир життя',
            'С: Тега-тега',
            'А: Єврейській',
            'В: Медуниця',
            'D: Галактика',
            'В: Сінгальский',
            'D: Колумбія',
            'D: Планери',
            'D: 5 вік до н.е.',
            'D: JavaScript',
            'D: У кроликів'
        ]
        self.current_question = 0 

        self.label = QLabel(self.list_questions[self.current_question])

        self.radioGroupBox = QGroupBox('') 
        self.radioGroup = QButtonGroup() 

        self.rbtn_1 = QPushButton('А: Навчання')
        self.rbtn_1.setFixedSize(740, 49)
        self.rbtn_2 = QPushButton('В: Самогон')
        self.rbtn_2.setFixedSize(740, 49)
        self.rbtn_3 = QPushButton('С: Стаж')
        self.rbtn_3.setFixedSize(740, 49)
        self.rbtn_4 = QPushButton('D: Досвід')
        self.rbtn_4.setFixedSize(740, 49) 

        self.radioGroup.addButton(self.rbtn_1)
        self.radioGroup.addButton(self.rbtn_2)
        self.radioGroup.addButton(self.rbtn_3)
        self.radioGroup.addButton(self.rbtn_4)

        self.hint_5050 = QPushButton(self)
        self.hint_5050.setIcon(QIcon('5050_normal.png'))
        self.hint_5050.setIconSize(QSize(105, 90))
        self.hint_5050.setFixedSize(120, 100)

        self.hint_audience = QPushButton(self)
        self.hint_audience.setIcon(QIcon('audience_normal.png'))
        self.hint_audience.setIconSize(QSize(105, 90))
        self.hint_audience.setFixedSize(120, 100)

        self.hint_expert = QPushButton(self)
        self.hint_expert.setIcon(QIcon('expert_normal.png'))
        self.hint_expert.setIconSize(QSize(105, 90))
        self.hint_expert.setFixedSize(120, 100)      

        self.hint_switch = QPushButton(self)
        self.hint_switch.setIcon(QIcon('switch_2_normal.png'))
        self.hint_switch.setIconSize(QSize(105, 90))
        self.hint_switch.setFixedSize(120, 100)         

        layout_ans1 = QHBoxLayout()  
        layout_ans2 = QVBoxLayout()
        layout_ans3 = QVBoxLayout()
        layout_ans2.addWidget(self.rbtn_1) 
        layout_ans2.addWidget(self.rbtn_2)
        layout_ans3.addWidget(self.rbtn_3) 
        layout_ans3.addWidget(self.rbtn_4)

        layout_ans1.addLayout(layout_ans2)
        layout_ans1.addLayout(layout_ans3) 

        self.radioGroupBox.setLayout(layout_ans1)

        layout = QVBoxLayout(self)
        layout.addWidget(self.label, alignment=Qt.AlignCenter)
        layout.addWidget(self.radioGroupBox)


class MainWindow(QMainWindow):
    def __init__(self):
        super().__init__()

        self.centralWidget = QWidget()                                  
        self.centralWidget.setObjectName('centralWidget')          
        self.setCentralWidget(self.centralWidget)  

        self.num = 0

        self.question = QLabel('<h1 style="color: rgb(250, 55, 55);">Правила гри')

        self.rules = QLabel('''Гра "Хто хоче стати мільйонером?" 
\
Ви повинні правильно відповісти на низку питань \
з кількома варіантами відповідей, щоб заробити 3.000.000 грн. \
Всього 15 питань, кожне питання коштує певної суми грошей, \
учасники не мають жодних тимчасових обмежень для надання \
відповіді. Учасник також отримуює 4 види підказок, щоб допомогти собі, \
якщо вони застрягли на конкретному питанні.  
\
Більше ознайомитися з правилами можна, натиснувши на кнопку. 
\
Хай щастить!''')
        self.rules.setStyleSheet("""
        font: bold;
        color: rgb(185, 255, 0);
    """)
        self.rules.setFixedSize(1010,450)
        self.rules.setObjectName('rules')
        self.rules.setWordWrap(True)    

        self.button_rules = QPushButton('Правила')
        self.button_rules.clicked.connect(lambda: webbrowser.open('https://ru.wwbm.com/rules'))
        self.button_rules.setFixedSize(300,50)


        self.button_start = QPushButton('Почати', clicked=self._start)  
        self.button_start.setFixedSize(300,50)
        
        
        self.layout = QVBoxLayout(self.centralWidget)
        
        self.lineH1 = QHBoxLayout()
        lineH2 = QHBoxLayout()
        lineH3 = QHBoxLayout()
        self.lineH1.addWidget(self.question, alignment=Qt.AlignHCenter)
        lineH2.addWidget(self.rules)
        lineH3.addWidget(self.button_rules, alignment=Qt.AlignCenter)
        lineH3.addWidget(self.button_start, alignment=Qt.AlignCenter)
        self.layout.addLayout(self.lineH1)
        self.layout.addWidget(self.rules, alignment=Qt.AlignHCenter)
        self.layout.addLayout(lineH3)


        
        self.timer = QTimer(self)
        self.timer.timeout.connect(self.update_timer)

        self.windowGroup = WindowGroup()

        self.windowGroup.rbtn_1.clicked.connect(self.on_clicked)
        self.windowGroup.rbtn_2.clicked.connect(self.on_clicked)
        self.windowGroup.rbtn_3.clicked.connect(self.on_clicked)
        self.windowGroup.rbtn_4.clicked.connect(self.on_clicked)

        self.list_rbtn = [
            self.windowGroup.rbtn_1,
            self.windowGroup.rbtn_2,
            self.windowGroup.rbtn_3,
            self.windowGroup.rbtn_4,
        ] 
        self.correct_answer = '<h1 style="color: #4E9F3D;">Це вірна відповідь!</h1>'
        self.wrong_answer = '<h1 style="color: #DA0037;">Це НЕ вірна відповідь!</h1>'

        self.windowGroup.hint_5050.clicked.connect(self.clicked_5050)
        self.windowGroup.hint_audience.clicked.connect(self.clicked_audience)

    def on_clicked(self):
        self.windowGroup.setEnabled(False)
        sender = self.sender()  
        self.sender_click = sender
        if sender.text() in self.windowGroup.list_yes_buttons:
            sender.setStyleSheet("background-color: green;")
            self.windowGroup.label.setText(
                f'{self.windowGroup.list_questions[self.windowGroup.current_question]} \
                {self.correct_answer}' 
            )                 
        else:
            sender.setStyleSheet("background-color: red;") 
            self.windowGroup.label.setText(
                f'{self.windowGroup.list_questions[self.windowGroup.current_question]} \
                {self.wrong_answer}' 
            )         
            self.windowGroup.current_question = self.windowGroup.quantity_questions
            self.num = 3    
        self.windowGroup.label.setAlignment(Qt.AlignCenter)

        QTimer.singleShot(3000, self.third)  

    def set_stylesheet(self):  
        self.setStyleSheet("""
            QLabel, QPushButton {
                font-size: 20pt;
            }
            #rules { 
                background-color: #ccffbd;
            }
            #windowgroup > QLabel { 
                font-size: 11pt;
            }
            #windowgroup > QGroupBox { 
                background-color: #a44500;
                font-size: 20pt;
                width: 620px; height: 49px;
            }
            QPushButton {
                background-color: #D98C00;
                font-size: 34px;
            }
            QPushButton:hover {
                background-color: #0082fc;
                border: 2px solid #FFA6D5;
            }
            #centralWidget {
                background-image: url(first.jpg);
            }
            #window_audience {
                backround-image: url(first.jpg);
            }
            """) 
        
    def update_timer(self):        
        self.question.setText(f'<h1 style="color: rgb(250, 55, 55);">{self.num}</h1>')
        if self.num == 0:
            self.timer.stop()
            
            self.set_stylesheet()                 

            self.question.setPixmap(QPixmap("million.png"))
            self.num = 3
            self.rules.hide()
            self.button_start.hide()
            self.button_rules.hide()
            self.layout.addWidget(self.windowGroup, alignment=Qt.AlignHCenter)

            self.lineH1.insertStretch(0)
            self.lineH1.insertWidget(1, self.windowGroup.hint_5050)
            self.lineH1.insertStretch(2)
            self.lineH1.insertWidget(3, self.windowGroup.hint_audience)
            self.lineH1.insertStretch(4)
            self.lineH1.insertStretch(-1)
            self.lineH1.insertWidget(-1, self.windowGroup.hint_expert)
            self.lineH1.insertStretch(-1)
            self.lineH1.insertWidget(-1, self.windowGroup.hint_switch)
            self.lineH1.insertStretch(-1)

            return            
        self.num -= 1        

    def _start(self):
        self.timer.start(1000)     

    def third(self):
        self.windowGroup.setEnabled(True)  
        self.windowGroup.hint_5050.setEnabled(True)      
        
        if self.windowGroup.current_question + 1 < self.windowGroup.quantity_questions:

            self.windowGroup.current_question += 1
            
            self.windowGroup.label.setText(
                self.windowGroup.list_questions[self.windowGroup.current_question])
            
            self.windowGroup.rbtn_1.setText(
                self.windowGroup.list_buttons[self.windowGroup.current_question][0])
            self.windowGroup.rbtn_2.setText(
                self.windowGroup.list_buttons[self.windowGroup.current_question][1])
            self.windowGroup.rbtn_3.setText(
                self.windowGroup.list_buttons[self.windowGroup.current_question][2])
            self.windowGroup.rbtn_4.setText(
                self.windowGroup.list_buttons[self.windowGroup.current_question][3])                
            
            self.set_stylesheet()            
        else:
            self.windowGroup.label.setText(
                '<h1 style="color: #FFDD93;">Гру закінчено, дякуємо за участь!</h1>'
            )             
            self.windowGroup.setEnabled(False)
            self.sender_click.setStyleSheet(
                "background-color: #D98C00; width: 780px; height: 49px;")
            self.set_stylesheet() 
            
        for rbtn in self.list_rbtn:    
            rbtn.setEnabled(True)
            rbtn.setStyleSheet("""
                QPushButton {
                    background-color: #D98C00; 
                    width: 620px; height: 49px;
                }
                QPushButton:hover {
                    background-color: #0082fc;
                    border: 2px solid #FFA6D5;
                }
            """)
            
        self.windowGroup.label.setAlignment(Qt.AlignCenter)   

    def clicked_5050(self):
        self.windowGroup.hint_5050.setEnabled(False)
        
        current_question = self.windowGroup.current_question
        list_yes_buttons = self.windowGroup.list_yes_buttons[current_question]
        list_5050 = [list_yes_buttons,]
        
        not_buttons = self.windowGroup.list_buttons[current_question]
        not_buttons.remove(list_yes_buttons)
        not_buttons = random.choices(not_buttons)

        list_5050.append(not_buttons[0])
        
        for rbtn in self.list_rbtn:
            if rbtn.text() in list_5050:
                pass
            else:
                rbtn.setEnabled(False)

        
    def clicked_audience(self):
        self.windowGroup.hint_audience.setEnabled(False)

        self.window_audience = QMessageBox()
        self.window_audience.setWindowTitle('Допомога зали')                                 
        self.window_audience.setObjectName('centralMessage')          
        self.window_audience.exec_()

        
        

if __name__ == "__main__":
    import sys
    app = QApplication(sys.argv)
    app.setStyleSheet("""
        QLabel {
            font-size: 20pt;
        }
        QPushButton { 
            font-size: 20pt;
            background-color: #ff8000;
        }
        #centralWidget {
            background-image: url(first.jpg);
        }
        #centeralMessage {
            backround-image: url(first.jpg);
        }
    """)
    w = MainWindow()          
    w.setWindowTitle('Million')  
    w.resize(1700, 770)
    w.move(125, 110)
    w.show()                           
    sys.exit(app.exec_())

文件: 在此处输入图像描述 在此处输入图像描述 在此处输入图像描述 在此处输入图像描述 在此处输入图像描述

python
  • 1 个回答
  • 10 Views
Martin Hope
Nikita Khistov
Asked: 2022-06-02 19:42:36 +0000 UTC

按钮组大小

  • -1

程序中有一个label问题,下面有答案选项(一组),但第一组答案选项的大小与其他选项不同。

之后,在问题上2,3答案选项按钮悬停在其上时不会以蓝色突出显示。

我尝试添加self.setStyleSheet(...)到班级WindowGroup(QWidget),但没有奏效。

编码:

import sys
from PyQt5.QtWidgets import *
from PyQt5.QtGui import *
from PyQt5.QtCore import *
import webbrowser
import random 
import time


class WindowGroup(QWidget):
    def __init__(self):
        super().__init__()
        self.setObjectName('windowgroup')

        self.list_questions = [                  
            '<h1 style="color: rgb(185, 255, 0);">Що мають на увазі кажучи: "пройшов вогонь, воду і мідні труби"?</h1>',
            '<h1 style="color: rgb(185, 255, 0);">Який материк найбільший?</h1>',
            '<h1 style="color: rgb(185, 255, 0);">Куди вказує червона стрілка компаса?</h1>',
            '<h1 style="color: rgb(185, 255, 0);">Який пігмент забарвлює листя в зелений колір?</h1>',
            '<h1 style="color: rgb(185, 255, 0);">Який препарат марно намагалися отримати середньовічні алхіміки?</h1>',
            '<h1 style="color: rgb(185, 255, 0);">Як правильно кликати гусака?</h1>',
            '<h1 style="color: rgb(185, 255, 0);">Якій кухні належить блюдо "форшмак"?</h1>',
            '<h1 style="color: rgb(185, 255, 0);">Яку рослину називають «живим світлофором»?</h1>',
            '<h1 style="color: rgb(185, 255, 0);">Що є туманністю Андромеди?</h1>',
            '<h1 style="color: rgb(185, 255, 0);">Назвіть офіційну мову Шрі-Ланки:</h1>',
            '<h1 style="color: rgb(185, 255, 0);">Столицею якої країни є місто Богота?</h1>',
            '<h1 style="color: rgb(185, 255, 0);">Які літальні апарати конструював Отто Ліліенталь?</h1>',
            '<h1 style="color: rgb(185, 255, 0);">У якому столітті в Китаї почали добувати залізо?</h1>',
            '<h1 style="color: rgb(185, 255, 0);">У якій мові програмування немає засобів роботи з файлами?</h1>',
            '<h1 style="color: rgb(185, 255, 0);">У яких тварин офіційно реєструвалися сонячні удари, подібні до людських?</h1>',
        ]

        self.quantity_questions = len(self.list_questions) 

        self.list_buttons = [                                     
            ['А: Навчання', 'В: Самогон', 'С: Стаж', 'D: Досвід'],
            ['А: Північна Америка', 'В: Південна Америка', 'С: Африка', 'D: Євразія'],
            ['А: Північ', 'В: Схід', 'С: Захід', 'D: Південь'],
            ['А: Каротин', 'В: Антоціан', 'С: Хлорофіл', 'D: Танін'],
            ['А: Настоянку мудрості', 'В: Засіб від лупи', 'С: Еліксир життя', 'D: Напій сміливості'],
            ['А: Киць-киць', 'В: Гуль-гуль', 'С: Тега-тега', 'D: Курчат-курчат'],
            ['А: Єврейській', 'В: Грузинській', 'С: Китайській', 'D: Індійській'],
            ['А: Акаліфа', 'В: Медуниця', 'С: Маранта', 'D: Кротон'],
            ['А: Метеорит', 'В: Зірка', "С: Сузір'я", 'D: Галактика'],
            ['А: Урду', 'В: Сінгальский', 'С: Бенгальський', 'D: Брахми'],
            ['А: Чилі', 'В: Перу' ,'С: Аргентина', 'D: Колумбія'],
            ['А: Вертольоти', 'В: Дирижаблі', 'С: Літаки-біплани', 'D: Планери'],
            ['А: 4 вік до н.е', 'В: 2 вік', 'С: 3 вік', 'D: 5 вік до н.е.'],
            ['А: PHP', 'В: Delphi', 'С: C++', 'D: JavaScript'],
            ['А: У собак', 'В: У кішок', 'С: У свиней', 'D: У кроликів']
        ]
        self.list_yes_buttons = [                      
            'D: Досвід',
            'D: Євразія',
            'D: Південь',
            'С: Хлорофіл',
            'С: Еліксир життя',
            'С: Тега-тега',
            'А: Єврейській',
            'В: Медуниця',
            'D: Галактика',
            'В: Сінгальский',
            'D: Колумбія',
            'D: Планери',
            'D: 5 вік до н.е.',
            'D: JavaScript',
            'D: У кроликів'
        ]
        self.current_question = 0 

        self.label = QLabel(self.list_questions[self.current_question])

        self.radioGroupBox = QGroupBox('') 
        self.radioGroup = QButtonGroup() 

        self.rbtn_1 = QPushButton('А: Навчання')
        self.rbtn_2 = QPushButton('В: Самогон')
        self.rbtn_3 = QPushButton('С: Стаж')
        self.rbtn_4 = QPushButton('D: Досвід')

        self.radioGroup.addButton(self.rbtn_1)
        self.radioGroup.addButton(self.rbtn_2)
        self.radioGroup.addButton(self.rbtn_3)
        self.radioGroup.addButton(self.rbtn_4)

        self.hint_5050 = QPushButton(self)
        self.hint_5050.setIcon(QIcon('5050_normal.png'))
        self.hint_5050.setIconSize(QSize(105, 90))
        self.hint_5050.setFixedSize(120, 100)

        self.hint_audience = QPushButton(self)
        self.hint_audience.setIcon(QIcon('audience_normal.png'))
        self.hint_audience.setIconSize(QSize(105, 90))
        self.hint_audience.setFixedSize(120, 100)

        self.hint_expert = QPushButton(self)
        self.hint_expert.setIcon(QIcon('expert_normal.png'))
        self.hint_expert.setIconSize(QSize(105, 90))
        self.hint_expert.setFixedSize(120, 100)      

        self.hint_switch = QPushButton(self)
        self.hint_switch.setIcon(QIcon('switch_2_normal.png'))
        self.hint_switch.setIconSize(QSize(105, 90))
        self.hint_switch.setFixedSize(120, 100)         

        layout_ans1 = QHBoxLayout()  
        layout_ans2 = QVBoxLayout()
        layout_ans3 = QVBoxLayout()
        layout_ans2.addWidget(self.rbtn_1) 
        layout_ans2.addWidget(self.rbtn_2)
        layout_ans3.addWidget(self.rbtn_3) 
        layout_ans3.addWidget(self.rbtn_4)

        layout_ans1.addLayout(layout_ans2)
        layout_ans1.addLayout(layout_ans3) 

        self.radioGroupBox.setLayout(layout_ans1)

        layout = QVBoxLayout(self)
        layout.addWidget(self.label, alignment=Qt.AlignCenter)
        layout.addWidget(self.radioGroupBox)


class MainWindow(QMainWindow):
    def __init__(self):
        super().__init__()

        self.centralWidget = QWidget()                                  
        self.centralWidget.setObjectName('centralWidget')          
        self.setCentralWidget(self.centralWidget)  

        self.num = 0

        self.question = QLabel('<h1 style="color: rgb(250, 55, 55);">Правила гри')

        self.rules = QLabel('''Гра "Хто хоче стати мільйонером?" 
\
Ви повинні правильно відповісти на низку питань \
з кількома варіантами відповідей, щоб заробити 3.000.000 грн. \
Всього 15 питань, кожне питання коштує певної суми грошей, \
учасники не мають жодних тимчасових обмежень для надання \
відповіді. Учасник також отримуює 4 види підказок, щоб допомогти собі, \
якщо вони застрягли на конкретному питанні.  
\
Більше ознайомитися з правилами можна, натиснувши на кнопку. 
\
Хай щастить!''')
        self.rules.setStyleSheet("""
        font: bold;
        color: rgb(185, 255, 0);
    """)
        self.rules.setFixedSize(1010,450)
        self.rules.setObjectName('rules')
        self.rules.setWordWrap(True)    

        self.button_rules = QPushButton('Правила')
        self.button_rules.clicked.connect(lambda: webbrowser.open('https://ru.wwbm.com/rules'))
        self.button_rules.setFixedSize(300,50)


        self.button_start = QPushButton('Почати', clicked=self._start)  
        self.button_start.setFixedSize(300,50)
        
        
        self.layout = QVBoxLayout(self.centralWidget)
        
        self.lineH1 = QHBoxLayout()
        lineH2 = QHBoxLayout()
        lineH3 = QHBoxLayout()
        self.lineH1.addWidget(self.question, alignment=Qt.AlignHCenter)
        lineH2.addWidget(self.rules)
        lineH3.addWidget(self.button_rules, alignment=Qt.AlignCenter)
        lineH3.addWidget(self.button_start, alignment=Qt.AlignCenter)
        self.layout.addLayout(self.lineH1)
        self.layout.addWidget(self.rules, alignment=Qt.AlignHCenter)
        self.layout.addLayout(lineH3)


        
        self.timer = QTimer(self)
        self.timer.timeout.connect(self.update_timer)

        self.windowGroup = WindowGroup()

        self.windowGroup.rbtn_1.clicked.connect(self.on_clicked)
        self.windowGroup.rbtn_2.clicked.connect(self.on_clicked)
        self.windowGroup.rbtn_3.clicked.connect(self.on_clicked)
        self.windowGroup.rbtn_4.clicked.connect(self.on_clicked)

        self.list_rbtn = [
            self.windowGroup.rbtn_1,
            self.windowGroup.rbtn_2,
            self.windowGroup.rbtn_3,
            self.windowGroup.rbtn_4,
        ] 
        self.correct_answer = '<h1 style="color: #4E9F3D;">Це вірна відповідь!</h1>'
        self.wrong_answer = '<h1 style="color: #DA0037;">Це НЕ вірна відповідь!</h1>'

        self.windowGroup.hint_5050.clicked.connect(self.clicked_5050)

    def on_clicked(self):
        self.windowGroup.setEnabled(False)
        sender = self.sender()  
        self.sender_click = sender
        if sender.text() in self.windowGroup.list_yes_buttons:
            sender.setStyleSheet("background-color: green;")
            self.windowGroup.label.setText(
                f'{self.windowGroup.list_questions[self.windowGroup.current_question]} \
                {self.correct_answer}' 
            )                 
        else:
            sender.setStyleSheet("background-color: red;") 
            self.windowGroup.label.setText(
                f'{self.windowGroup.list_questions[self.windowGroup.current_question]} \
                {self.wrong_answer}' 
            )         
            self.windowGroup.current_question = self.windowGroup.quantity_questions
            self.num = 3    
        self.windowGroup.label.setAlignment(Qt.AlignCenter)

        QTimer.singleShot(3000, self.third)  

    def set_stylesheet(self):  
        self.setStyleSheet("""
            QLabel, QPushButton {
                font-size: 20pt;
            }
            #rules { 
                background-color: #ccffbd;
            }
            #windowgroup > QLabel { 
                font-size: 11pt;
            }
            #windowgroup > QGroupBox { 
                background-color: #a44500;
                font-size: 20pt;
                width: 620px; height: 49px;
            }
            QPushButton {
                background-color: #D98C00;
                font-size: 34px;
            }
            QPushButton:hover {
                background-color: #0082fc;
                border: 2px solid #FFA6D5;
            }
            #centralWidget {
                background-image: url(first.jpg);
            }
            """) 
        
    def update_timer(self):        
        self.question.setText(f'<h1 style="color: rgb(250, 55, 55);">{self.num}</h1>')
        if self.num == 0:
            self.timer.stop()
            
            self.set_stylesheet()                 

            self.question.setPixmap(QPixmap("million.png"))
            self.num = 3
            self.rules.hide()
            self.button_start.hide()
            self.button_rules.hide()
            self.layout.addWidget(self.windowGroup, alignment=Qt.AlignHCenter)

            self.lineH1.insertStretch(0)
            self.lineH1.insertWidget(1, self.windowGroup.hint_5050)
            self.lineH1.insertStretch(2)
            self.lineH1.insertWidget(3, self.windowGroup.hint_audience)
            self.lineH1.insertStretch(4)
            self.lineH1.insertStretch(-1)
            self.lineH1.insertWidget(-1, self.windowGroup.hint_expert)
            self.lineH1.insertStretch(-1)
            self.lineH1.insertWidget(-1, self.windowGroup.hint_switch)
            self.lineH1.insertStretch(-1)

            return            
        self.num -= 1        

    def _start(self):
        self.timer.start(1000)     

    def third(self):
        self.windowGroup.setEnabled(True)  
        self.windowGroup.hint_5050.setEnabled(True)      
        
        if self.windowGroup.current_question + 1 < self.windowGroup.quantity_questions:

            self.windowGroup.current_question += 1
            
            self.windowGroup.label.setText(
                self.windowGroup.list_questions[self.windowGroup.current_question])
            
            self.windowGroup.rbtn_1.setText(
                self.windowGroup.list_buttons[self.windowGroup.current_question][0])
            self.windowGroup.rbtn_2.setText(
                self.windowGroup.list_buttons[self.windowGroup.current_question][1])
            self.windowGroup.rbtn_3.setText(
                self.windowGroup.list_buttons[self.windowGroup.current_question][2])
            self.windowGroup.rbtn_4.setText(
                self.windowGroup.list_buttons[self.windowGroup.current_question][3])                
            
            self.set_stylesheet()            
        else:
            self.windowGroup.label.setText(
                '<h1 style="color: #FFDD93;">Гру закінчено, дякуємо за участь!</h1>'
            )             
            self.windowGroup.setEnabled(False)
            self.sender_click.setStyleSheet(
                "background-color: #D98C00; width: 780px; height: 49px;")
            self.set_stylesheet() 
            
        for rbtn in self.list_rbtn:    
            rbtn.setEnabled(True)
            rbtn.setStyleSheet(
                "background-color: #D98C00; width: 780px; height: 49px;")
            
        self.windowGroup.label.setAlignment(Qt.AlignCenter)   

    def clicked_5050(self):
        self.windowGroup.hint_5050.setEnabled(False)
        
        current_question = self.windowGroup.current_question
        list_yes_buttons = self.windowGroup.list_yes_buttons[current_question]
        list_5050 = [list_yes_buttons,]
        
        not_buttons = self.windowGroup.list_buttons[current_question]
        not_buttons.remove(list_yes_buttons)
        not_buttons = random.choices(not_buttons)

        list_5050.append(not_buttons[0])
        
        for rbtn in self.list_rbtn:
            if rbtn.text() in list_5050:
                pass
            else:
                rbtn.setEnabled(False)

        
    def clicked_audience(self):
        pass

        
        

if __name__ == "__main__":
    import sys
    app = QApplication(sys.argv)
    app.setStyleSheet("""
        QLabel {
            font-size: 20pt;
        }
        QPushButton { 
            font-size: 20pt;
            background-color: #ff8000;
        }
        #centralWidget {
            background-image: url(first.jpg);
        }
        

    """) 
    w = MainWindow()          
    w.setWindowTitle('Million')  
    w.resize(1700, 770)
    w.move(125, 110)
    w.show()                           
    sys.exit(app.exec_())

文件: 在此处输入图像描述 在此处输入图像描述 在此处输入图像描述 在此处输入图像描述 在此处输入图像描述 在此处输入图像描述

python
  • 1 个回答
  • 10 Views
Martin Hope
Nikita Khistov
Asked: 2022-06-01 18:53:39 +0000 UTC

提示 50/50 + 文件

  • 1

我希望在激活按钮后,答案选项被50/50删除2并保留两个,其中一个是正确的。

好吧,就像该功能针对一个问题(当玩家点击时)处于活动状态一样。我有两种选择来回答所有问题。

看起来可能是这样的rbtn.setEnabled (True):但这无济于事。

编码:

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


class WindowGroup(QWidget):
    def __init__(self):
        super().__init__()
        self.setObjectName('windowgroup')

        self.list_questions = [                  
            '<h1 style="color: rgb(185, 255, 0);">Що приказка не радить виносити з хати, щоб не розголошувати сімейні розбрати?</h1>',
            '<h1 style="color: rgb(185, 255, 0);">Який материк найбільший?</h1>',
            '<h1 style="color: rgb(185, 255, 0);">Куди вказує червона стрілка компаса?</h1>',
            '<h1 style="color: rgb(185, 255, 0);">Який пігмент забарвлює листя в зелений колір?".?</h1>',
            '<h1 style="color: rgb(185, 255, 0);">Який препарат марно намагалися отримати середньовічні алхіміки?".?</h1>',
            '<h1 style="color: rgb(185, 255, 0);">Як правильно кликати гусака?".?</h1>',
            '<h1 style="color: rgb(185, 255, 0);">Якій кухні належить блюдо "форшмак"?".?</h1>',
            '<h1 style="color: rgb(185, 255, 0);">Яку рослину називають «живим світлофором»?".?</h1>',
            '<h1 style="color: rgb(185, 255, 0);">Що є туманністю Андромеди?".?</h1>',
            '<h1 style="color: rgb(185, 255, 0);">Назвіть офіційну мову Шрі-Ланки:".?</h1>',
            '<h1 style="color: rgb(185, 255, 0);">Столицею якої країни є місто Богота?".?</h1>',
            '<h1 style="color: rgb(185, 255, 0);">Які літальні апарати конструював Отто Ліліенталь?".?</h1>',
            '<h1 style="color: rgb(185, 255, 0);">У якому столітті в Китаї почали добувати залізо?".?</h1>',
            '<h1 style="color: rgb(185, 255, 0);">У якій мові програмування немає засобів роботи з файлами?".?</h1>',
            '<h1 style="color: rgb(185, 255, 0);">У яких тварин офіційно реєструвалися сонячні удари, подібні до людських?".?</h1>',
        ]

        self.quantity_questions = len(self.list_questions) 

        self.list_buttons = [                                     
            ['А: Сміття', 'В: Сор', 'С: Пил', 'D: Меблі'],
            ['А: Північна Америка', 'В: Південна Америка', 'С: Африка', 'D: Євразія'],
            ['А: Північ', 'В: Схід', 'С: Захід', 'D: Південь'],
            ['А: Каротин', 'В: Антоціан', 'С: Хлорофіл', 'D: Танін'],
            ['А: Настоянку мудрості', 'В: Засіб від лупи', 'С: Еліксир життя', 'D: Напій сміливості'],
            ['А: Киць-киць', 'В: Гуль-гуль', 'С: Тега-тега', 'D: Курчат-курчат'],
            ['А: Єврейській', 'В: Грузинській', 'С: Китайській', 'D: Індійській'],
            ['А: Акаліфа', 'В: Медуниця', 'С: Маранта', 'D: Кротон'],
            ['А: Метеорит', 'В: Зірка', "С: Сузір'я", 'D: Галактика'],
            ['А: Урду', 'В: Сінгальский', 'С: Бенгальський', 'D: Брахми'],
            ['А: Чилі', 'В: Перу' ,'С: Аргентина', 'D: Колумбія'],
            ['А: Вертольоти', 'В: Дирижаблі', 'С: Літаки-біплани', 'D: Планери'],
            ['А: 4 вік до н.е', 'В: 2 вік', 'С: 3 вік', 'D: 5 вік до н.е.'],
            ['А: PHP', 'В: Delphi', 'С: C++', 'D: JavaScript'],
            ['А: У собак', 'В: У кішок', 'С: У свиней', 'D: У кроликів']
        ]
        self.list_yes_buttons = [                      
            'А: Сміття',
            'D: Євразія',
            'D: Південь',
            'С: Хлорофіл',
            'С: Еліксир життя',
            'С: Тега-тега',
            'А: Єврейські',
            'В: Медуниця',
            'D: Галактика',
            'В: Сінгальский',
            'D: Колумбія',
            'D: Планери',
            'D: 5 вік до н.е.',
            'D: JavaScript',
            'D: У кроликів'
        ]
        self.current_question = 0 

        self.label = QLabel(self.list_questions[self.current_question])

        self.radioGroupBox = QGroupBox('') 
        self.radioGroup = QButtonGroup() 

        self.rbtn_1 = QPushButton('А: Сміття')
        self.rbtn_2 = QPushButton('В: Сор')
        self.rbtn_3 = QPushButton('С: Пил')
        self.rbtn_4 = QPushButton('D: Меблі')

        self.radioGroup.addButton(self.rbtn_1)
        self.radioGroup.addButton(self.rbtn_2)
        self.radioGroup.addButton(self.rbtn_3)
        self.radioGroup.addButton(self.rbtn_4)

        self.hint_5050 = QPushButton(self)
        self.hint_5050.setIcon(QIcon('5050_normal.png'))
        self.hint_5050.setIconSize(QSize(105, 90))
        self.hint_5050.setFixedSize(120, 100)

        self.hint_audience = QPushButton(self)
        self.hint_audience.setIcon(QIcon('audience_normal.png'))
        self.hint_audience.setIconSize(QSize(105, 90))
        self.hint_audience.setFixedSize(120, 100)

        self.hint_expert = QPushButton(self)
        self.hint_expert.setIcon(QIcon('expert_normal.png'))
        self.hint_expert.setIconSize(QSize(105, 90))
        self.hint_expert.setFixedSize(120, 100)      

        self.hint_switch = QPushButton(self)
        self.hint_switch.setIcon(QIcon('switch_2_normal.png'))
        self.hint_switch.setIconSize(QSize(105, 90))
        self.hint_switch.setFixedSize(120, 100)         

        layout_ans1 = QHBoxLayout()  
        layout_ans2 = QVBoxLayout()
        layout_ans3 = QVBoxLayout()
        layout_ans2.addWidget(self.rbtn_1) 
        layout_ans2.addWidget(self.rbtn_2)
        layout_ans3.addWidget(self.rbtn_3) 
        layout_ans3.addWidget(self.rbtn_4)

        layout_ans1.addLayout(layout_ans2)
        layout_ans1.addLayout(layout_ans3) 

        self.radioGroupBox.setLayout(layout_ans1)

        layout = QVBoxLayout(self)
        layout.addWidget(self.label, alignment=Qt.AlignCenter)
        layout.addWidget(self.radioGroupBox)


class MainWindow(QMainWindow):
    def __init__(self):
        super().__init__()

        self.centralWidget = QWidget()                                  
        self.centralWidget.setObjectName('centralWidget')          
        self.setCentralWidget(self.centralWidget)  

        self.num = 3

        self.question = QLabel('<h1 style="color: rgb(250, 55, 55);">Правила гри')

        self.rules = QLabel('''Гра "Хто хоче стати мільйонером?" 
\
Ви повинні правильно відповісти на низку питань \
з кількома варіантами відповідей, щоб заробити 3.000.000 грн. \
Всього 15 питань, кожне питання коштує певної суми грошей, \
учасники не мають жодних тимчасових обмежень для надання \
відповіді. Учасник також отримуює 4 види підказок, щоб допомогти собі, \
якщо вони застрягли на конкретному питанні.  
\
Більше ознайомитися з правилами можна, натиснувши на кнопку. 
\
Хай щастить!''')
        self.rules.setStyleSheet("""
        font: bold;
        color: rgb(185, 255, 0);
    """)
        self.rules.setFixedSize(1010,450)
        self.rules.setObjectName('rules')
        self.rules.setWordWrap(True)    

        self.button_rules = QPushButton('Правила')
        self.button_rules.clicked.connect(lambda: webbrowser.open('https://ru.wwbm.com/rules'))
        self.button_rules.setFixedSize(300,50)


        self.button_start = QPushButton('Почати', clicked=self._start)  
        self.button_start.setFixedSize(300,50)
        
        
        self.layout = QVBoxLayout(self.centralWidget)
        
        self.lineH1 = QHBoxLayout()
        lineH2 = QHBoxLayout()
        lineH3 = QHBoxLayout()
        self.lineH1.addWidget(self.question, alignment=Qt.AlignHCenter)
        lineH2.addWidget(self.rules)
        lineH3.addWidget(self.button_rules, alignment=Qt.AlignCenter)
        lineH3.addWidget(self.button_start, alignment=Qt.AlignCenter)
        self.layout.addLayout(self.lineH1)
        self.layout.addWidget(self.rules, alignment=Qt.AlignHCenter)
        self.layout.addLayout(lineH3)


        
        self.timer = QTimer(self)
        self.timer.timeout.connect(self.update_timer)

        self.windowGroup = WindowGroup()

        self.windowGroup.rbtn_1.clicked.connect(self.on_clicked)
        self.windowGroup.rbtn_2.clicked.connect(self.on_clicked)
        self.windowGroup.rbtn_3.clicked.connect(self.on_clicked)
        self.windowGroup.rbtn_4.clicked.connect(self.on_clicked)

        self.list_rbtn = [
            self.windowGroup.rbtn_1,
            self.windowGroup.rbtn_2,
            self.windowGroup.rbtn_3,
            self.windowGroup.rbtn_4,
        ] 
        self.correct_answer = '<h1 style="color: #4E9F3D;">Це вірна відповідь!</h1>'
        self.wrong_answer = '<h1 style="color: #DA0037;">Це НЕ вірна відповідь!</h1>'

        self.windowGroup.hint_5050.clicked.connect(self.clicked_5050)

    def on_clicked(self):
        self.windowGroup.setEnabled(False)
        sender = self.sender()  
        self.sender_click = sender
        if sender.text() in self.windowGroup.list_yes_buttons:
            sender.setStyleSheet("background-color: green;")
            self.windowGroup.label.setText(
                f'{self.windowGroup.list_questions[self.windowGroup.current_question]} \
                {self.correct_answer}' 
            )                 
        else:
            sender.setStyleSheet("background-color: red;") 
            self.windowGroup.label.setText(
                f'{self.windowGroup.list_questions[self.windowGroup.current_question]} \
                {self.wrong_answer}' 
            )         
            self.windowGroup.current_question = self.windowGroup.quantity_questions
            self.num = 3    
        self.windowGroup.label.setAlignment(Qt.AlignCenter)

        QTimer.singleShot(3000, self.third)  

    def set_stylesheet(self):  
            self.setStyleSheet("""
                QLabel, QPushButton {
                    font-size: 20pt;
                }
                #rules { 
                    background-color: #ccffbd;
                }
                #windowgroup > QLabel { 
                    font-size: 11pt;
                }
                #windowgroup > QGroupBox { 
                    background-color: #a44500;
                    font-size: 20pt;
                    width: 620px; height: 49px;
                }
                QPushButton {
                    background-color: #D98C00;
                    font-size: 34px;
                }
                QPushButton:hover {
                    background-color: #0082fc;
                    border: 2px solid #FFA6D5;
                }
                #centralWidget {
                    background-image: url(first.jpg);
                }
            """) 
        
    def update_timer(self):        
        self.question.setText(f'<h1 style="color: rgb(250, 55, 55);">{self.num}</h1>')
        if self.num == 0:
            self.timer.stop()
            
            self.set_stylesheet()                 

            self.question.setPixmap(QPixmap("million.png"))
            self.num = 3
            self.rules.hide()
            self.button_start.hide()
            self.button_rules.hide()
            self.layout.addWidget(self.windowGroup, alignment=Qt.AlignHCenter)

            self.lineH1.insertStretch(0)
            self.lineH1.insertWidget(1, self.windowGroup.hint_5050)
            self.lineH1.insertStretch(2)
            self.lineH1.insertWidget(3, self.windowGroup.hint_audience)
            self.lineH1.insertStretch(4)
            self.lineH1.insertStretch(-1)
            self.lineH1.insertWidget(-1, self.windowGroup.hint_expert)
            self.lineH1.insertStretch(-1)
            self.lineH1.insertWidget(-1, self.windowGroup.hint_switch)
            self.lineH1.insertStretch(-1)

            return            
        self.num -= 1        

    def _start(self):
        self.timer.start(1000)     

    def third(self):
        self.windowGroup.setEnabled(True)
        
        if self.windowGroup.current_question + 1 < self.windowGroup.quantity_questions:

            self.windowGroup.current_question += 1
            
            self.windowGroup.label.setText(
                self.windowGroup.list_questions[self.windowGroup.current_question])
            
            self.windowGroup.rbtn_1.setText(
                self.windowGroup.list_buttons[self.windowGroup.current_question][0])
            self.windowGroup.rbtn_2.setText(
                self.windowGroup.list_buttons[self.windowGroup.current_question][1])
            self.windowGroup.rbtn_3.setText(
                self.windowGroup.list_buttons[self.windowGroup.current_question][2])
            self.windowGroup.rbtn_4.setText(
                self.windowGroup.list_buttons[self.windowGroup.current_question][3])                
            
            self.set_stylesheet()            
        else:
            self.windowGroup.label.setText(
                '<h1 style="color: #FFDD93;">Гру закінчено, дякуємо за участь!</h1>'
            )             
            self.windowGroup.setEnabled(False)
            self.sender_click.setStyleSheet(
                "background-color: #D98C00; width: 780px; height: 49px;")
            self.set_stylesheet() 
            
        for rbtn in self.list_rbtn:    
            rbtn.setStyleSheet(
                "background-color: #D98C00; width: 780px; height: 49px;")
            
        self.windowGroup.label.setAlignment(Qt.AlignCenter)   

    def clicked_5050(self):
        self.windowGroup.hint_5050.setEnabled(False)
        
        current_question = self.windowGroup.current_question
        list_yes_buttons = self.windowGroup.list_yes_buttons[current_question]
        list_5050 = [list_yes_buttons,]
        
        not_buttons = self.windowGroup.list_buttons[current_question]
        not_buttons.remove(list_yes_buttons)
        not_buttons = random.choices(not_buttons)

        list_5050.append(not_buttons[0])
        
        for rbtn in self.list_rbtn:
            if rbtn.text() in list_5050:
                pass
            else:
                rbtn.setEnabled(False)

    def activation(self):
        self.windowGroup.rbtn_1.setEnabled(True)
        self.windowGroup.rbtn_2.setEnabled(True)
        self.windowGroup.rbtn_3.setEnabled(True)
        self.windowGroup.rbtn_4.setEnabled(True)
        
    def clicked_audience(self):
        pass

        
        

if __name__ == "__main__":
    import sys
    app = QApplication(sys.argv)
    app.setStyleSheet("""
        QLabel {
            font-size: 20pt;
        }
        QPushButton { 
            font-size: 20pt;
            background-color: #ff8000;
        }
        #centralWidget {
            background-image: url(first.jpg);
        }

    """)     
    w = MainWindow()          
    w.setWindowTitle('Million')  
    w.resize(1700, 770)
    w.move(125, 110)
    w.show()                           
    sys.exit(app.exec_())

文件: 在此处输入图像描述 在此处输入图像描述 在此处输入图像描述 在此处输入图像描述 在此处输入图像描述 在此处输入图像描述

python
  • 1 个回答
  • 10 Views
Martin Hope
Nikita Khistov
Asked: 2022-05-31 22:29:48 +0000 UTC

提示 50/50,有两个,其中一个是正确的

  • 1

我希望在激活按钮后,答案选项被50/50删除2并保留两个,其中一个是正确的。

我不明白如何删除按钮?也许是一种方法deleteLater()?

我的代码:

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


class WindowGroup(QWidget):
    def __init__(self):
        super().__init__()
        self.setObjectName('windowgroup')

        self.quantity_questions = 15
        self.list_questions = [                  
            '<h1 style="color: rgb(185, 255, 0);">Що приказка не радить виносити з хати, щоб не розголошувати сімейні розбрати?</h1>',
            '<h1 style="color: rgb(185, 255, 0);">Який материк найбільший?</h1>',
            '<h1 style="color: rgb(185, 255, 0);">Куди вказує червона стрілка компаса?</h1>',
            '<h1 style="color: rgb(185, 255, 0);">Який пігмент забарвлює листя в зелений колір?".?</h1>',
            '<h1 style="color: rgb(185, 255, 0);">Який препарат марно намагалися отримати середньовічні алхіміки?".?</h1>',
            '<h1 style="color: rgb(185, 255, 0);">Як правильно кликати гусака?".?</h1>',
            '<h1 style="color: rgb(185, 255, 0);">Якій кухні належить блюдо "форшмак"?".?</h1>',
            '<h1 style="color: rgb(185, 255, 0);">Яку рослину називають «живим світлофором»?".?</h1>',
            '<h1 style="color: rgb(185, 255, 0);">Що є туманністю Андромеди?".?</h1>',
            '<h1 style="color: rgb(185, 255, 0);">Назвіть офіційну мову Шрі-Ланки:".?</h1>',
            '<h1 style="color: rgb(185, 255, 0);">Столицею якої країни є місто Богота?".?</h1>',
            '<h1 style="color: rgb(185, 255, 0);">Які літальні апарати конструював Отто Ліліенталь?".?</h1>',
            '<h1 style="color: rgb(185, 255, 0);">У якому столітті в Китаї почали добувати залізо?".?</h1>',
            '<h1 style="color: rgb(185, 255, 0);">У якій мові програмування немає засобів роботи з файлами?".?</h1>',
            '<h1 style="color: rgb(185, 255, 0);">У яких тварин офіційно реєструвалися сонячні удари, подібні до людських?".?</h1>',
        ]
        self.list_buttons = [                                     
            ['А: Сміття', 'В: Сор', 'С: Пил', 'D: Меблі'],
            ['А: Північна Америка', 'В: Південна Америка', 'С: Африка', 'D: Євразія'],
            ['А: Північ', 'В: Схід', 'С: Захід', 'D: Південь'],
            ['А: Каротин', 'В: Антоціан', 'С: Хлорофіл', 'D: Танін'],
            ['А: Настоянку мудрості', 'В: Засіб від лупи', 'С: Еліксир життя', 'D: Напій сміливості'],
            ['А: Киць-киць', 'В: Гуль-гуль', 'С: Тега-тега', 'D: Курчат-курчат'],
            ['А: Єврейській', 'В: Грузинській', 'С: Китайській', 'D: Індійській'],
            ['А: Акаліфа', 'В: Медуниця', 'С: Маранта', 'D: Кротон'],
            ['А: Метеорит', 'В: Зірка', "С: Сузір'я", 'D: Галактика'],
            ['А: Урду', 'В: Сінгальский', 'С: Бенгальський', 'D: Брахми'],
            ['А: Чилі', 'В: Перу' ,'С: Аргентина', 'D: Колумбія'],
            ['А: Вертольоти', 'В: Дирижаблі', 'С: Літаки-біплани', 'D: Планери'],
            ['А: 4 вік до н.е', 'В: 2 вік', 'С: 3 вік', 'D: 5 вік до н.е.'],
            ['А: PHP', 'В: Delphi', 'С: C++', 'D: JavaScript'],
            ['А: У собак', 'В: У кішок', 'С: У свиней', 'D: У кроликів']
        ]
        self.list_yes_buttons = [                      
            'А: Сміття',
            'D: Євразія',
            'D: Південь',
            'С: Хлорофіл',
            'С: Еліксир життя',
            'С: Тега-тега',
            'А: Єврейські',
            'В: Медуниця',
            'D: Галактика',
            'В: Сінгальский',
            'D: Колумбія',
            'D: Планери',
            'D: 5 вік до н.е.',
            'D: JavaScript',
            'D: У кроликів'
        ]
        self.current_question = 0 

        self.label = QLabel(self.list_questions[self.current_question])

        self.radioGroupBox = QGroupBox('') 
        self.radioGroup = QButtonGroup() 

        self.rbtn_1 = QPushButton('А: Сміття')
        self.rbtn_2 = QPushButton('В: Сор')
        self.rbtn_3 = QPushButton('С: Пил')
        self.rbtn_4 = QPushButton('D: Меблі')

        self.radioGroup.addButton(self.rbtn_1)
        self.radioGroup.addButton(self.rbtn_2)
        self.radioGroup.addButton(self.rbtn_3)
        self.radioGroup.addButton(self.rbtn_4)

        self.hint_5050 = QPushButton(self)
        self.hint_5050.setIcon(QIcon('5050_normal.png'))
        self.hint_5050.setIconSize(QSize(105, 90))
        self.hint_5050.setFixedSize(120, 100)

        self.hint_audience = QPushButton(self)
        self.hint_audience.setIcon(QIcon('audience_normal.png'))
        self.hint_audience.setIconSize(QSize(105, 90))
        self.hint_audience.setFixedSize(120, 100)

        self.hint_expert = QPushButton(self)
        self.hint_expert.setIcon(QIcon('expert_normal.png'))
        self.hint_expert.setIconSize(QSize(105, 90))
        self.hint_expert.setFixedSize(120, 100)      

        self.hint_switch = QPushButton(self)
        self.hint_switch.setIcon(QIcon('switch_2_normal.png'))
        self.hint_switch.setIconSize(QSize(105, 90))
        self.hint_switch.setFixedSize(120, 100)           

        layout_ans1 = QHBoxLayout()  
        layout_ans2 = QVBoxLayout()
        layout_ans3 = QVBoxLayout()
        layout_ans2.addWidget(self.rbtn_1) 
        layout_ans2.addWidget(self.rbtn_2)
        layout_ans3.addWidget(self.rbtn_3) 
        layout_ans3.addWidget(self.rbtn_4)

        layout_ans1.addLayout(layout_ans2)
        layout_ans1.addLayout(layout_ans3) 

        self.radioGroupBox.setLayout(layout_ans1)

        layout = QVBoxLayout(self)
        layout.addWidget(self.label, alignment=Qt.AlignCenter)
        layout.addWidget(self.radioGroupBox)


class MainWindow(QMainWindow):
    def __init__(self):
        super().__init__()

        self.centralWidget = QWidget()                                  
        self.centralWidget.setObjectName('centralWidget')          
        self.setCentralWidget(self.centralWidget)  

        self.num = 0

        self.question = QLabel('<h1 style="color: rgb(250, 55, 55);">Правила гри')

        self.rules = QLabel('''Гра "Хто хоче стати мільйонером?" 
\
Ви повинні правильно відповісти на низку питань \
з кількома варіантами відповідей, щоб заробити 3.000.000 грн. \
Всього 15 питань, кожне питання коштує певної суми грошей, \
учасники не мають жодних тимчасових обмежень для надання \
відповіді. Учасник також отримуює 4 види підказок, щоб допомогти собі, \
якщо вони застрягли на конкретному питанні.  
\
Більше ознайомитися з правилами можна, натиснувши на кнопку. 
\
Хай щастить!''')
        self.rules.setStyleSheet("""
        font: bold;
        color: rgb(185, 255, 0);
    """)
        self.rules.setFixedSize(1010,450)
        self.rules.setObjectName('rules')
        self.rules.setWordWrap(True)    

        self.button_rules = QPushButton('Правила')
        self.button_rules.clicked.connect(lambda: webbrowser.open('https://ru.wwbm.com/rules'))
        self.button_rules.setFixedSize(300,50)


        self.button_start = QPushButton('Почати', clicked=self._start)  
        self.button_start.setFixedSize(300,50)
        
        
        self.layout = QVBoxLayout(self.centralWidget)
        
        self.lineH1 = QHBoxLayout()
        lineH2 = QHBoxLayout()
        lineH3 = QHBoxLayout()
        self.lineH1.addWidget(self.question, alignment=Qt.AlignHCenter)
        lineH2.addWidget(self.rules)
        lineH3.addWidget(self.button_rules, alignment=Qt.AlignCenter)
        lineH3.addWidget(self.button_start, alignment=Qt.AlignCenter)
        self.layout.addLayout(self.lineH1)
        self.layout.addWidget(self.rules, alignment=Qt.AlignHCenter)
        self.layout.addLayout(lineH3)


        
        self.timer = QTimer(self)
        self.timer.timeout.connect(self.update_timer)

        self.windowGroup = WindowGroup()

        self.windowGroup.rbtn_1.clicked.connect(self.on_clicked)
        self.windowGroup.rbtn_2.clicked.connect(self.on_clicked)
        self.windowGroup.rbtn_3.clicked.connect(self.on_clicked)
        self.windowGroup.rbtn_4.clicked.connect(self.on_clicked)

        self.list_rbtn = [
            self.windowGroup.rbtn_1,
            self.windowGroup.rbtn_2,
            self.windowGroup.rbtn_3,
            self.windowGroup.rbtn_4,
        ] 
        self.correct_answer = '<h1 style="color: #4E9F3D;">Це вірна відповідь!</h1>'
        self.wrong_answer = '<h1 style="color: #DA0037;">Це НЕ вірна відповідь!</h1>'
    
    def hint_on_clicked(self):
        pass

    def on_clicked(self):
        self.windowGroup.setEnabled(False)
        sender = self.sender()  
        self.sender_click = sender
        if sender.text() in self.windowGroup.list_yes_buttons:
            sender.setStyleSheet("background-color: green;")
            self.windowGroup.label.setText(
                f'{self.windowGroup.list_questions[self.windowGroup.current_question]} \
                {self.correct_answer}' 
            )                 
        else:
            sender.setStyleSheet("background-color: red;") 
            self.windowGroup.label.setText(
                f'{self.windowGroup.list_questions[self.windowGroup.current_question]} \
                {self.wrong_answer}' 
            )             
        self.windowGroup.label.setAlignment(Qt.AlignCenter)

        QTimer.singleShot(3000, self.third)  

    def set_stylesheet(self):  
            self.setStyleSheet("""
                QLabel, QPushButton {
                    font-size: 20pt;
                }
                #rules { 
                    background-color: #ccffbd;
                }
                #windowgroup > QLabel { 
                    font-size: 11pt;
                }
                #windowgroup > QGroupBox { 
                    background-color: #a44500;
                    font-size: 20pt;
                    width: 620px; height: 49px;
                }
                QPushButton {
                    background-color: #D98C00;
                    font-size: 34px;
                }
                QPushButton:hover {
                    background-color: #0082fc;
                    border: 2px solid #FFA6D5;
                }
                #centralWidget {
                    background-image: url(first.jpg);
                }
            """) 
        
    def update_timer(self):        
        self.question.setText(f'<h1 style="color: rgb(250, 55, 55);">{self.num}</h1>')
        if self.num == 0:
            self.timer.stop()
            
            self.set_stylesheet()                 

            self.question.setPixmap(QPixmap("million.png"))
            self.num = 3
            self.rules.hide()
            self.button_start.hide()
            self.button_rules.hide()
            self.layout.addWidget(self.windowGroup, alignment=Qt.AlignHCenter)

            self.lineH1.insertStretch(0)
            self.lineH1.insertWidget(1, self.windowGroup.hint_5050)
            self.lineH1.insertStretch(2)
            self.lineH1.insertWidget(3, self.windowGroup.hint_audience)
            self.lineH1.insertStretch(4)
            self.lineH1.insertStretch(-1)
            self.lineH1.insertWidget(-1, self.windowGroup.hint_expert)
            self.lineH1.insertStretch(-1)
            self.lineH1.insertWidget(-1, self.windowGroup.hint_switch)
            self.lineH1.insertStretch(-1)

            return            
        self.num -= 1        

    def _start(self):
        self.timer.start(1000)     

    def third(self):
        self.windowGroup.setEnabled(True)
        
        if self.windowGroup.current_question + 1 < self.windowGroup.quantity_questions:

            self.windowGroup.current_question += 1
            
            self.windowGroup.label.setText(
                self.windowGroup.list_questions[self.windowGroup.current_question])
            
            self.windowGroup.rbtn_1.setText(
                self.windowGroup.list_buttons[self.windowGroup.current_question][0])
            self.windowGroup.rbtn_2.setText(
                self.windowGroup.list_buttons[self.windowGroup.current_question][1])
            self.windowGroup.rbtn_3.setText(
                self.windowGroup.list_buttons[self.windowGroup.current_question][2])
            self.windowGroup.rbtn_4.setText(
                self.windowGroup.list_buttons[self.windowGroup.current_question][3])                

            for rbtn in self.list_rbtn:    
                rbtn.setStyleSheet(
                    "background-color: #D98C00; width: 780px; height: 49px;")                
            self.set_stylesheet()            
        else:
            self.windowGroup.label.setText(
                '<h1 style="color: #FFDD93;">Игра закончена, спасибо за участие.</h1>'
            )             
            self.windowGroup.setEnabled(False)
            self.sender_click.setStyleSheet(
                "background-color: #D98C00; width: 780px; height: 49px;")
            
        self.windowGroup.label.setAlignment(Qt.AlignCenter)   

        
        

if __name__ == "__main__":
    import sys
    app = QApplication(sys.argv)
    app.setStyleSheet("""
        QLabel {
            font-size: 20pt;
        }
        QPushButton { 
            font-size: 20pt;
            background-color: #ff8000;
        }
        #centralWidget {
            background-image: url(first.jpg);
        }

    """)     
    w = MainWindow()          
    w.setWindowTitle('Million')  
    w.resize(1700, 770)
    w.move(125, 110)
    w.show()                           
    sys.exit(app.exec_())

文件:

在此处输入图像描述 在此处输入图像描述 在此处输入图像描述 在此处输入图像描述

在此处输入图像描述

在此处输入图像描述

python
  • 1 个回答
  • 10 Views
Martin Hope
Nikita Khistov
Asked: 2022-05-31 20:55:50 +0000 UTC

在 PyQt5 中停止进程

  • 1

我需要在点击错误答案后,游戏结束并且按钮处于非活动状态。

编码:

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


class WindowGroup(QWidget):
    def __init__(self):
        super().__init__()
        self.setObjectName('windowgroup')

        self.quantity_questions = 2
        self.list_questions = [                  
            '<h1 style="color: rgb(185, 255, 0);">Що приказка не радить виносити з хати, щоб не розголошувати сімейні розбрати?</h1>',
            '<h1 style="color: rgb(185, 255, 0);">Який материк найбільший?</h1>',
            '<h1 style="color: rgb(185, 255, 0);">Куди вказує червона стрілка компаса?</h1>',
            '<h1 style="color: rgb(185, 255, 0);">Який пігмент забарвлює листя в зелений колір?".?</h1>',
            '<h1 style="color: rgb(185, 255, 0);">Який препарат марно намагалися отримати середньовічні алхіміки?".?</h1>',
            '<h1 style="color: rgb(185, 255, 0);">Як правильно кликати гусака?".?</h1>',
            '<h1 style="color: rgb(185, 255, 0);">Якій кухні належить блюдо "форшмак"?".?</h1>',
            '<h1 style="color: rgb(185, 255, 0);">Яку рослину називають «живим світлофором»?".?</h1>',
            '<h1 style="color: rgb(185, 255, 0);">Що є туманністю Андромеди?".?</h1>',
            '<h1 style="color: rgb(185, 255, 0);">Назвіть офіційну мову Шрі-Ланки:".?</h1>',
            '<h1 style="color: rgb(185, 255, 0);">Столицею якої країни є місто Богота?".?</h1>',
            '<h1 style="color: rgb(185, 255, 0);">Які літальні апарати конструював Отто Ліліенталь?".?</h1>',
            '<h1 style="color: rgb(185, 255, 0);">У якому столітті в Китаї почали добувати залізо?".?</h1>',
            '<h1 style="color: rgb(185, 255, 0);">У якій мові програмування немає засобів роботи з файлами?".?</h1>',
            '<h1 style="color: rgb(185, 255, 0);">У яких тварин офіційно реєструвалися сонячні удари, подібні до людських?".?</h1>',
        ]
        self.list_buttons = [                                     
            ['А: Сміття', 'В: Сор', 'С: Пил', 'D: Меблі'],
            ['А: Північна Америка', 'В: Південна Америка', 'С: Африка', 'D: Євразія'],
            ['А: Північ', 'В: Схід', 'С: Захід', 'D: Південь'],
            ['А: Каротин', 'В: Антоціан', 'С: Хлорофіл', 'D: Танін'],
            ['А: Настоянку мудрості', 'В: Засіб від лупи', 'С: Еліксир життя', 'D: Напій сміливості'],
            ['А: Киць-киць', 'В: Гуль-гуль', 'С: Тега-тега', 'D: Курчат-курчат'],
            ['А: Єврейській', 'В: Грузинській', 'С: Китайській', 'D: Індійській'],
            ['А: Акаліфа', 'В: Медуниця', 'С: Маранта', 'D: Кротон'],
            ['А: Метеорит', 'В: Зірка', "С: Сузір'я", 'D: Галактика'],
            ['А: Урду', 'В: Сінгальский', 'С: Бенгальський', 'D: Брахми'],
            ['А: Чилі', 'В: Перу' ,'С: Аргентина', 'D: Колумбія'],
            ['А: Вертольоти', 'В: Дирижаблі', 'С: Літаки-біплани', 'D: Планери'],
            ['А: 4 вік до н.е', 'В: 2 вік', 'С: 3 вік', 'D: 5 вік до н.е.'],
            ['А: PHP', 'В: Delphi', 'С: C++', 'D: JavaScript'],
            ['А: У собак', 'В: У кішок', 'С: У свиней', 'D: У кроликів']
        ]
        self.list_yes_buttons = [                      
            'А: Сміття',
            'D: Євразія',
            'D: Південь',
            'С: Хлорофіл',
            'С: Еліксир життя',
            'С: Тега-тега',
            ' А: Єврейські',
            'В: Медуниця',
            'D: Галактика',
            'В: Сінгальский',
            'D: Колумбія',
            'D: Планери',
            'D: 5 вік до н.е.',
            'D: JavaScript',
            'D: У кроликів'
        ]
        self.current_question = 0 

        self.label = QLabel(self.list_questions[self.current_question])

        self.radioGroupBox = QGroupBox('') 
        self.radioGroup = QButtonGroup() 

        self.rbtn_1 = QPushButton('А: Сміття')
        self.rbtn_2 = QPushButton('В: Сор')
        self.rbtn_3 = QPushButton('С: Пил')
        self.rbtn_4 = QPushButton('D: Меблі')

        self.radioGroup.addButton(self.rbtn_1)
        self.radioGroup.addButton(self.rbtn_2)
        self.radioGroup.addButton(self.rbtn_3)
        self.radioGroup.addButton(self.rbtn_4)

        self.hint_5050 = QPushButton(self)
        self.hint_5050.setIcon(QIcon('5050_normal.png'))
        self.hint_5050.setIconSize(QSize(105, 90))
        self.hint_5050.setFixedSize(120, 100)

        self.hint_audience = QPushButton(self)
        self.hint_audience.setIcon(QIcon('audience_normal.png'))
        self.hint_audience.setIconSize(QSize(105, 90))
        self.hint_audience.setFixedSize(120, 100)

        self.hint_expert = QPushButton(self)
        self.hint_expert.setIcon(QIcon('expert_normal.png'))
        self.hint_expert.setIconSize(QSize(105, 90))
        self.hint_expert.setFixedSize(120, 100)      

        self.hint_switch = QPushButton(self)
        self.hint_switch.setIcon(QIcon('switch_2_normal.png'))
        self.hint_switch.setIconSize(QSize(105, 90))
        self.hint_switch.setFixedSize(120, 100)           

        layout_ans1 = QHBoxLayout()  
        layout_ans2 = QVBoxLayout()
        layout_ans3 = QVBoxLayout()
        layout_ans2.addWidget(self.rbtn_1) 
        layout_ans2.addWidget(self.rbtn_2)
        layout_ans3.addWidget(self.rbtn_3) 
        layout_ans3.addWidget(self.rbtn_4)

        layout_ans1.addLayout(layout_ans2)
        layout_ans1.addLayout(layout_ans3) 

        self.radioGroupBox.setLayout(layout_ans1)

        layout = QVBoxLayout(self)
        layout.addWidget(self.label, alignment=Qt.AlignCenter)
        layout.addWidget(self.radioGroupBox)


class MainWindow(QMainWindow):
    def __init__(self):
        super().__init__()

        self.centralWidget = QWidget()                                  
        self.centralWidget.setObjectName('centralWidget')          
        self.setCentralWidget(self.centralWidget)  

        self.num = 0

        self.question = QLabel('<h1 style="color: rgb(250, 55, 55);">Правила гри')

        self.rules = QLabel('''Гра "Хто хоче стати мільйонером?" 
\
Ви повинні правильно відповісти на низку питань \
з кількома варіантами відповідей, щоб заробити 3.000.000 грн. \
Всього 15 питань, кожне питання коштує певної суми грошей, \
учасники не мають жодних тимчасових обмежень для надання \
відповіді. Учасник також отримуює 4 види підказок, щоб допомогти собі, \
якщо вони застрягли на конкретному питанні.  
\
Більше ознайомитися з правилами можна, натиснувши на кнопку. 
\
Хай щастить!''')
        self.rules.setStyleSheet("""
        font: bold;
        color: rgb(185, 255, 0);
    """)
        self.rules.setFixedSize(1010,450)
        self.rules.setObjectName('rules')
        self.rules.setWordWrap(True)    

        self.button_rules = QPushButton('Правила')
        self.button_rules.clicked.connect(lambda: webbrowser.open('https://ru.wwbm.com/rules'))
        self.button_rules.setFixedSize(300,50)


        self.button_start = QPushButton('Почати', clicked=self._start)  
        self.button_start.setFixedSize(300,50)
        
        
        self.layout = QVBoxLayout(self.centralWidget)
        
        self.lineH1 = QHBoxLayout()
        lineH2 = QHBoxLayout()
        lineH3 = QHBoxLayout()
        self.lineH1.addWidget(self.question, alignment=Qt.AlignHCenter)
        lineH2.addWidget(self.rules)
        lineH3.addWidget(self.button_rules, alignment=Qt.AlignCenter)
        lineH3.addWidget(self.button_start, alignment=Qt.AlignCenter)
        self.layout.addLayout(self.lineH1)
        self.layout.addWidget(self.rules, alignment=Qt.AlignHCenter)
        self.layout.addLayout(lineH3)


        
        self.timer = QTimer(self)
        self.timer.timeout.connect(self.update_timer)

        self.windowGroup = WindowGroup()

        self.windowGroup.rbtn_1.clicked.connect(self.on_clicked)
        self.windowGroup.rbtn_2.clicked.connect(self.on_clicked)
        self.windowGroup.rbtn_3.clicked.connect(self.on_clicked)
        self.windowGroup.rbtn_4.clicked.connect(self.on_clicked)

        self.list_rbtn = [
            self.windowGroup.rbtn_1,
            self.windowGroup.rbtn_2,
            self.windowGroup.rbtn_3,
            self.windowGroup.rbtn_4,
        ] 
        self.correct_answer = '<h1 style="color: #4E9F3D;">Це вірна відповідь!</h1>'
        self.wrong_answer = '<h1 style="color: #DA0037;">Це НЕ вірна відповідь!</h1>'

    def on_clicked(self):
        self.windowGroup.setEnabled(False)
        sender = self.sender()  
        self.sender_click = sender
        if sender.text() in self.windowGroup.list_yes_buttons:
            sender.setStyleSheet("background-color: green;")
            self.windowGroup.label.setText(
                f'{self.windowGroup.list_questions[self.windowGroup.current_question]} \
                {self.correct_answer}' 
            )                 
        else:
            sender.setStyleSheet("background-color: red;") 
            self.windowGroup.label.setText(
                f'{self.windowGroup.list_questions[self.windowGroup.current_question]} \
                {self.wrong_answer}' 
            )             
        self.windowGroup.label.setAlignment(Qt.AlignCenter)

        QTimer.singleShot(3000, self.third)  

    def set_stylesheet(self):  
            self.setStyleSheet("""
                QLabel, QPushButton {
                    font-size: 20pt;
                }
                #rules { 
                    background-color: #ccffbd;
                }
                #windowgroup > QLabel { 
                    font-size: 11pt;
                }
                #windowgroup > QGroupBox { 
                    background-color: #a44500;
                    font-size: 20pt;
                    width: 620px; height: 49px;
                }
                QPushButton {
                    background-color: #D98C00;
                    font-size: 34px;
                }
                QPushButton:hover {
                    background-color: #0082fc;
                    border: 2px solid #FFA6D5;
                }
                #centralWidget {
                    background-image: url(first.jpg);
                }
            """) 
        
    def update_timer(self):        
        self.question.setText(f'<h1 style="color: rgb(250, 55, 55);">{self.num}</h1>')
        if self.num == 0:
            self.timer.stop()
            
            self.set_stylesheet()                 

            self.question.setPixmap(QPixmap("million.png"))
            self.num = 3
            self.rules.hide()
            self.button_start.hide()
            self.button_rules.hide()
            self.layout.addWidget(self.windowGroup, alignment=Qt.AlignHCenter)

            self.lineH1.insertStretch(0)
            self.lineH1.insertWidget(1, self.windowGroup.hint_5050)
            self.lineH1.insertStretch(2)
            self.lineH1.insertWidget(3, self.windowGroup.hint_audience)
            self.lineH1.insertStretch(4)
            self.lineH1.insertStretch(-1)
            self.lineH1.insertWidget(-1, self.windowGroup.hint_expert)
            self.lineH1.insertStretch(-1)
            self.lineH1.insertWidget(-1, self.windowGroup.hint_switch)
            self.lineH1.insertStretch(-1)

            return            
        self.num -= 1        

    def _start(self):
        self.timer.start(1000)     

    def third(self):
        self.windowGroup.setEnabled(True)
        
        if self.windowGroup.current_question + 1 < self.windowGroup.quantity_questions:

            self.windowGroup.current_question += 1
            
            self.windowGroup.label.setText(
                self.windowGroup.list_questions[self.windowGroup.current_question])
            
            self.windowGroup.rbtn_1.setText(
                self.windowGroup.list_buttons[self.windowGroup.current_question][0])
            self.windowGroup.rbtn_2.setText(
                self.windowGroup.list_buttons[self.windowGroup.current_question][1])
            self.windowGroup.rbtn_3.setText(
                self.windowGroup.list_buttons[self.windowGroup.current_question][2])
            self.windowGroup.rbtn_4.setText(
                self.windowGroup.list_buttons[self.windowGroup.current_question][3])                

            for rbtn in self.list_rbtn:    
                rbtn.setStyleSheet(
                    "background-color: #D98C00; width: 780px; height: 49px;")                
            self.set_stylesheet()            
        else:
            self.windowGroup.label.setText(
                '<h1 style="color: #FFDD93;">Игра закончена, спасибо за участие.</h1>'
            )             
            self.windowGroup.setEnabled(False)
            self.sender_click.setStyleSheet(
                "background-color: #D98C00; width: 780px; height: 49px;")
            
        self.windowGroup.label.setAlignment(Qt.AlignCenter)   

        
        

if __name__ == "__main__":
    import sys
    app = QApplication(sys.argv)
    app.setStyleSheet("""
        QLabel {
            font-size: 20pt;
        }
        QPushButton { 
            font-size: 20pt;
            background-color: #ff8000;
        }
        #centralWidget {
            background-image: url(first.jpg);
        }

    """)     
    w = MainWindow()          
    w.setWindowTitle('Million')  
    w.resize(1700, 770)
    w.move(125, 110)
    w.show()                           
    sys.exit(app.exec_())

文件:

在此处输入图像描述 在此处输入图像描述 在此处输入图像描述 在此处输入图像描述

在此处输入图像描述 在此处输入图像描述

python
  • 1 个回答
  • 10 Views
Martin Hope
Nikita Khistov
Asked: 2022-05-30 05:00:33 +0000 UTC

按钮延迟和过渡到下一张幻灯片

  • 1

有一个程序,点击正确答案后,需要3第二次延迟,然后更改问题和答案。

我不明白如何windowgroup更改答案以及如何过渡到下一张幻灯片。
我开始写一个方法third()。

编码:

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


class WindowGroup(QWidget):
    def __init__(self):
        super().__init__()
        self.setObjectName('windowgroup')

        self.label = QLabel('<h1 style="color: rgb(185, 255, 0);">Що приказка не радить виносити з хати, щоб не розголошувати сімейні розбрати?</h1>')

        self.radioGroupBox = QGroupBox('') 
        self.radioGroup = QButtonGroup() 

        self.rbtn_1 = QPushButton('А: Сміття')
        self.rbtn_2 = QPushButton('В: Сор')
        self.rbtn_3 = QPushButton('С: Пил')
        self.rbtn_4 = QPushButton('D: Меблі')

        self.radioGroup.addButton(self.rbtn_1)
        self.radioGroup.addButton(self.rbtn_2)
        self.radioGroup.addButton(self.rbtn_3)
        self.radioGroup.addButton(self.rbtn_4)

        self.hint_5050 = QPushButton(self)
        self.hint_5050.setIcon(QIcon('5050_normal.png'))
        self.hint_5050.setIconSize(QSize(105, 90))
        self.hint_5050.setFixedSize(120, 100)

        self.hint_audience = QPushButton(self)
        self.hint_audience.setIcon(QIcon('audience_normal.png'))
        self.hint_audience.setIconSize(QSize(105, 90))
        self.hint_audience.setFixedSize(120, 100)

        self.hint_expert = QPushButton(self)
        self.hint_expert.setIcon(QIcon('expert_normal.png'))
        self.hint_expert.setIconSize(QSize(105, 90))
        self.hint_expert.setFixedSize(120, 100)      

        self.hint_switch = QPushButton(self)
        self.hint_switch.setIcon(QIcon('switch_2_normal.png'))
        self.hint_switch.setIconSize(QSize(105, 90))
        self.hint_switch.setFixedSize(120, 100)           

        layout_ans1 = QHBoxLayout()  
        layout_ans2 = QVBoxLayout()
        layout_ans3 = QVBoxLayout()
        layout_ans2.addWidget(self.rbtn_1) 
        layout_ans2.addWidget(self.rbtn_2)
        layout_ans3.addWidget(self.rbtn_3) 
        layout_ans3.addWidget(self.rbtn_4)

        layout_ans1.addLayout(layout_ans2)
        layout_ans1.addLayout(layout_ans3) 

        self.radioGroupBox.setLayout(layout_ans1)

        layout = QVBoxLayout(self)
        layout.addWidget(self.label, alignment=Qt.AlignCenter)
        layout.addWidget(self.radioGroupBox)


class MainWindow(QMainWindow):
    def __init__(self):
        super().__init__()

        self.centralWidget = QWidget()                                  
        self.centralWidget.setObjectName('centralWidget')          
        self.setCentralWidget(self.centralWidget)  

        self.num = 0

        self.question = QLabel('<h1 style="color: rgb(250, 55, 55);">Правила гри')

        self.rules = QLabel('''Гра "Хто хоче стати мільйонером?" 
\
Ви повинні правильно відповісти на низку питань \
з кількома варіантами відповідей, щоб заробити 3.000.000 грн. \
Всього 15 питань, кожне питання коштує певної суми грошей, \
учасники не мають жодних тимчасових обмежень для надання \
відповіді. Учасник також отримуює 4 види підказок, щоб допомогти собі, \
якщо вони застрягли на конкретному питанні.  
\
Більше ознайомитися з правилами можна, натиснувши на кнопку. 
\
Хай щастить!''')
        self.rules.setStyleSheet("""
        font: bold;
        color: rgb(185, 255, 0);
    """)
        self.rules.setFixedSize(1010,450)
        self.rules.setObjectName('rules')
        self.rules.setWordWrap(True)    

        self.button_rules = QPushButton('Правила')
        self.button_rules.clicked.connect(lambda: webbrowser.open('https://ru.wwbm.com/rules'))
        self.button_rules.setFixedSize(300,50)

        self.button_start = QPushButton('Почати', clicked=self._start)  
        self.button_start.setFixedSize(300,50)
        
        self.layout = QVBoxLayout(self.centralWidget)
        
        self.lineH1 = QHBoxLayout()
        lineH2 = QHBoxLayout()
        lineH3 = QHBoxLayout()
        self.lineH1.addWidget(self.question, alignment=Qt.AlignHCenter)
        lineH2.addWidget(self.rules)
        lineH3.addWidget(self.button_rules, alignment=Qt.AlignCenter)
        lineH3.addWidget(self.button_start, alignment=Qt.AlignCenter)
        self.layout.addLayout(self.lineH1)
        self.layout.addWidget(self.rules, alignment=Qt.AlignHCenter)
        self.layout.addLayout(lineH3)

        self.timer = QTimer(self)
        self.timer.timeout.connect(self.update_timer)

        self.windowGroup = WindowGroup()

        self.windowGroup.rbtn_1.clicked.connect(self.on_clicked)
        self.windowGroup.rbtn_2.clicked.connect(self.on_clicked)
        self.windowGroup.rbtn_3.clicked.connect(self.on_clicked)
        self.windowGroup.rbtn_4.clicked.connect(self.on_clicked)

    def on_clicked(self):
        self.windowGroup.setEnabled(False)
        sender = self.sender()  
        if sender.text() == 'А: Сміття':  
            sender.setStyleSheet("background-color: green;")                
        else:
            sender.setStyleSheet("background-color: red;") 
        
    def update_timer(self):        
        self.question.setText(f'<h1 style="color: rgb(250, 55, 55);">{self.num}</h1>')
        if self.num == 0:
            self.timer.stop()
            self.setStyleSheet("""
                QLabel, QPushButton {
                    font-size: 20pt;
                }
                #rules { 
                    background-color: #ccffbd;
                }
                #windowgroup > QLabel { 
                    font-size: 11pt;
                }
                #windowgroup > QGroupBox { 
                    background-color: #a44500;
                    font-size: 20pt;
                }
                QPushButton {
                    background-color: #D98C00;
                    font-size: 34px;
                }
                QPushButton:hover {
                    background-color: #0082fc;
                    border: 2px solid #FFA6D5;
                }
                #centralWidget {
                    background-image: url(first.jpg);
                }
            """) 
            self.question.setPixmap(QPixmap("million.png"))
            self.num = 3
            self.rules.hide()
            self.button_start.hide()
            self.button_rules.hide()
            self.layout.addWidget(self.windowGroup, alignment=Qt.AlignHCenter)

            self.lineH1.insertStretch(0)
            self.lineH1.insertWidget(1, self.windowGroup.hint_5050)
            self.lineH1.insertStretch(2)
            self.lineH1.insertWidget(3, self.windowGroup.hint_audience)
            self.lineH1.insertStretch(4)
            
            self.lineH1.insertStretch(-1)
            self.lineH1.insertWidget(-1, self.windowGroup.hint_expert)
            self.lineH1.insertStretch(-1)
            self.lineH1.insertWidget(-1, self.windowGroup.hint_switch)
            self.lineH1.insertStretch(-1)


            return            
        self.num -= 1        

    def _start(self):
        self.timer.start(1000)

    def third(self):
        self.label.setText('Скільки становив зріст найвищої людини України Леоніда Стадніка?')
        self.windowgroup.setText('А: 301, В: 257, С: 290, D: 310')
        

if __name__ == "__main__":
    import sys
    app = QApplication(sys.argv)
    app.setStyleSheet("""
        QLabel {
            font-size: 20pt;
        }
        QPushButton { 
            font-size: 20pt;
            background-color: #ff8000;
        }
        #centralWidget {
            background-image: url(first.jpg);
        }

    """)     
    w = MainWindow()          
    w.setWindowTitle('Million')  
    w.resize(1700, 770)
    w.move(125, 110)
    w.show()                           
    sys.exit(app.exec_())

所需文件:

在此处输入图像描述 在此处输入图像描述

在此处输入图像描述 在此处输入图像描述 在此处输入图像描述

在此处输入图像描述

python
  • 1 个回答
  • 10 Views
Martin Hope
Nikita Khistov
Asked: 2022-05-29 05:21:24 +0000 UTC

按钮位置

  • 1

我需要所有4按钮(提示)与图片处于同一水平并做更多的事情,我尝试通过一条水平线,但这是它工作的唯一方式。如果可能的话,然后为图片的大小制作一个按钮?

编码:

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

class Hint(QWidget):
    def __init__(self):
        super().__init__()


class WindowGroup(QWidget):
    def __init__(self):
        super().__init__()
        self.setObjectName('windowgroup')

        self.label = QLabel('<h1 style="color: rgb(185, 255, 0);">Що приказка не радить виносити з хати, щоб не розголошувати сімейні розбрати?</h1>')

        self.radioGroupBox = QGroupBox('') 
        self.radioGroup = QButtonGroup() 

        self.rbtn_1 = QPushButton('А: Сміття')
        self.rbtn_2 = QPushButton('В: Сор')
        self.rbtn_3 = QPushButton('С: Пил')
        self.rbtn_4 = QPushButton('D: Меблі')

        self.radioGroup.addButton(self.rbtn_1)
        self.radioGroup.addButton(self.rbtn_2)
        self.radioGroup.addButton(self.rbtn_3)
        self.radioGroup.addButton(self.rbtn_4)

        self.hint_5050 = QPushButton(self)
        self.hint_5050.setIcon(QIcon('5050_normal.png'))
        self.hint_5050.setIconSize(QSize(80, 80))
        self.hint_5050.setFixedSize(90,75)

        self.hint_audience = QPushButton(self)
        self.hint_audience.setIcon(QIcon('audience_normal.png'))
        self.hint_audience.setIconSize(QSize(80, 80))
        self.hint_audience.setFixedSize(90,75)

        self.hint_expert = QPushButton(self)
        self.hint_expert.setIcon(QIcon('expert_normal.png'))
        self.hint_expert.setIconSize(QSize(80, 80))
        self.hint_expert.setFixedSize(90,75)      

        self.hint_switch = QPushButton(self)
        self.hint_switch.setIcon(QIcon('switch_2_normal.png'))
        self.hint_switch.setIconSize(QSize(80, 80))
        self.hint_switch.setFixedSize(90,75)  

        line = QHBoxLayout()
        line.addWidget(self.hint_5050)
        line.addWidget(self.hint_audience)
        line.addWidget(self.hint_expert)
        line.addWidget(self.hint_switch)        

        layout_ans1 = QHBoxLayout()  
        layout_ans2 = QVBoxLayout()
        layout_ans3 = QVBoxLayout()
        layout_ans2.addWidget(self.rbtn_1) 
        layout_ans2.addWidget(self.rbtn_2)
        layout_ans3.addWidget(self.rbtn_3) 
        layout_ans3.addWidget(self.rbtn_4)

        layout_ans1.addLayout(layout_ans2)
        layout_ans1.addLayout(layout_ans3) 

        self.radioGroupBox.setLayout(layout_ans1)

        layout = QVBoxLayout(self)
        layout.addLayout(line)
        layout.addWidget(self.label, alignment=Qt.AlignCenter)
        layout.addWidget(self.radioGroupBox)


class MainWindow(QMainWindow):
    def __init__(self):
        super().__init__()

        self.centralWidget = QWidget()                                  
        self.centralWidget.setObjectName('centralWidget')          
        self.setCentralWidget(self.centralWidget)  

        self.num = 0

        self.question = QLabel('<h1 style="color: rgb(250, 55, 55);">Правила гри')

        self.rules = QLabel('''Гра "Хто хоче стати мільйонером?" 
\
Ви повинні правильно відповісти на низку питань \
з кількома варіантами відповідей, щоб заробити 3.000.000 грн. \
Всього 15 питань, кожне питання коштує певної суми грошей, \
учасники не мають жодних тимчасових обмежень для надання \
відповіді. Учасник також отримуює 4 види підказок, щоб допомогти собі, \
якщо вони застрягли на конкретному питанні.  
\
Більше ознайомитися з правилами можна, натиснувши на кнопку. 
\
Хай щастить!''')
        self.rules.setStyleSheet("""
        font: bold;
        color: rgb(185, 255, 0);
    """)
        self.rules.setFixedSize(1010,450)
        self.rules.setObjectName('rules')
        self.rules.setWordWrap(True)    

        self.button_rules = QPushButton('Правила')
        self.button_rules.clicked.connect(lambda: webbrowser.open('https://ru.wwbm.com/rules'))
        self.button_rules.setFixedSize(300,50)

        self.button_start = QPushButton('Почати', clicked=self._start)  
        self.button_start.setFixedSize(300,50)
        
        self.layout = QVBoxLayout(self.centralWidget)
        
        lineH1 = QHBoxLayout()
        lineH2 = QHBoxLayout()
        lineH3 = QHBoxLayout()
        lineH1.addWidget(self.question, alignment=Qt.AlignHCenter)
        lineH2.addWidget(self.rules)
        lineH3.addWidget(self.button_rules, alignment=Qt.AlignCenter)
        lineH3.addWidget(self.button_start, alignment=Qt.AlignCenter)
        self.layout.addLayout(lineH1)
        self.layout.addWidget(self.rules, alignment=Qt.AlignHCenter)
        self.layout.addLayout(lineH3)

        self.timer = QTimer(self)
        self.timer.timeout.connect(self.update_timer)

        self.windowGroup = WindowGroup()

        self.windowGroup.rbtn_1.clicked.connect(self.on_clicked)
        self.windowGroup.rbtn_2.clicked.connect(self.on_clicked)
        self.windowGroup.rbtn_3.clicked.connect(self.on_clicked)
        self.windowGroup.rbtn_4.clicked.connect(self.on_clicked)

    def on_clicked(self):
        self.windowGroup.setEnabled(False)
        sender = self.sender()  
        if sender.text() == 'А: Сміття':  
            sender.setStyleSheet("background-color: green;")                
        else:
            sender.setStyleSheet("background-color: red;") 
        
    def update_timer(self):        
        self.question.setText(f'<h1 style="color: rgb(250, 55, 55);">{self.num}</h1>')
        if self.num == 0:
            self.timer.stop()
            self.setStyleSheet("""
                QLabel, QPushButton {
                    font-size: 20pt;
                }
                #rules { 
                    background-color: #ccffbd;
                }
                #windowgroup > QLabel { 
                    font-size: 11pt;
                }
                #windowgroup > QGroupBox { 
                    background-color: #a44500;
                    font-size: 20pt;
                }
                QPushButton {
                    background-color: #D98C00;
                    font-size: 34px;
                }
                QPushButton:hover {
                    background-color: #0082fc;
                    border: 2px solid #FFA6D5;
                }
                #centralWidget {
                    background-image: url(first.jpg);
                }
            """) 
            self.question.setPixmap(QPixmap("million.png"))
            self.num = 3
            self.rules.hide()
            self.button_start.hide()
            self.button_rules.hide()
            self.layout.addWidget(self.windowGroup, alignment=Qt.AlignHCenter)

            return            
        self.num -= 1        

    def _start(self):
        self.timer.start(1000)
        

if __name__ == "__main__":
    import sys
    app = QApplication(sys.argv)
    app.setStyleSheet("""
        QLabel {
            font-size: 20pt;
        }
        QPushButton { 
            font-size: 20pt;
            background-color: #ff8000;
        }
        #centralWidget {
            background-image: url(first.jpg);
        }

    """)     
    w = MainWindow()          
    w.setWindowTitle('Million')  
    w.resize(1700, 770)
    w.move(125, 110)
    w.show()                           
    sys.exit(app.exec_())

以及程序中涉及的文件:

观众正常.png

5050_normal.png

专家正常.png

switch_2_normal.png

[第一张.jpg][5]

python
  • 1 个回答
  • 10 Views
Martin Hope
Nikita Khistov
Asked: 2022-05-28 05:19:40 +0000 UTC

正确答案点亮按钮

  • 1

需要,倒计时之后。在多项选择组中,当单击正确的选项时(Smittya)以绿色突出显示,否则保持红色。
目前,它全部以红色突出显示。如果可能的话,那么就不可能更改答案选项。

这是代码:

from PyQt5.QtCore import Qt, QTimer
from PyQt5.QtWidgets import QApplication, QWidget, QPushButton, \
    QLabel, QVBoxLayout, QHBoxLayout, QPushButton, QGroupBox, QButtonGroup, QMainWindow
from PyQt5.QtGui import QPixmap
import webbrowser

class WindowGroup(QWidget):
    def __init__(self):
        super().__init__()
        self.setObjectName('windowgroup')

        self.label = QLabel('<h1 style="color: rgb(185, 255, 0);">Що приказка не радить виносити з хати, щоб не розголошувати сімейні розбрати?</h1>')

        self.radioGroupBox = QGroupBox('') 
        self.radioGroup = QButtonGroup() 

        self.rbtn_1 = QPushButton('А: Сміття')
        self.rbtn_2 = QPushButton('В: Сор')
        self.rbtn_3 = QPushButton('С: Пил')
        self.rbtn_4 = QPushButton('D: Меблі')

        self.radioGroup.addButton(self.rbtn_1)
        self.radioGroup.addButton(self.rbtn_2)
        self.radioGroup.addButton(self.rbtn_3)
        self.radioGroup.addButton(self.rbtn_4)

        layout_ans1 = QHBoxLayout()  
        layout_ans2 = QVBoxLayout()
        layout_ans3 = QVBoxLayout()
        layout_ans2.addWidget(self.rbtn_1) 
        layout_ans2.addWidget(self.rbtn_2)
        layout_ans3.addWidget(self.rbtn_3) 
        layout_ans3.addWidget(self.rbtn_4)

        layout_ans1.addLayout(layout_ans2)
        layout_ans1.addLayout(layout_ans3) 

        self.radioGroupBox.setLayout(layout_ans1)

        layout = QVBoxLayout(self)
        layout.addWidget(self.label, alignment=Qt.AlignCenter)
        layout.addWidget(self.radioGroupBox)


class MainWindow(QMainWindow, WindowGroup):
    def __init__(self):
        super().__init__()

        self.centralWidget = QWidget()                                  
        self.centralWidget.setObjectName('centralWidget')          
        self.setCentralWidget(self.centralWidget)  

        self.num = 0

        self.question = QLabel('<h1 style="color: rgb(250, 55, 55);">Правила гри')

        self.rules = QLabel('''Гра "Хто хоче стати мільйонером?" 
\
Ви повинні правильно відповісти на низку питань \
з кількома варіантами відповідей, щоб заробити 3.000.000 грн. \
Всього 15 питань, кожне питання коштує певної суми грошей, \
учасники не мають жодних тимчасових обмежень для надання \
відповіді. Учасники також отримують три види підказок, щоб допомогти собі, \
якщо вони застрягли на конкретному питанні.  
\
Більше ознайомитися з правилами можна, натиснувши на кнопку. 
\
Хай щастить!''')
        self.rules.setObjectName('rules')
        self.rules.setWordWrap(True)    

        self.button_rules = QPushButton('Правила')
        self.button_rules.clicked.connect(lambda: webbrowser.open('https://ru.wwbm.com/rules'))
        self.button_rules.setFixedSize(300,50)


        self.button_start = QPushButton('Почати', clicked=self._start)  
        self.button_start.setFixedSize(300,50)
        
        
        self.layout = QVBoxLayout(self.centralWidget)
        
        lineH1 = QHBoxLayout()
        lineH2 = QHBoxLayout()
        lineH3 = QHBoxLayout()
        lineH1.addWidget(self.question, alignment=Qt.AlignHCenter)
        lineH2.addWidget(self.rules)
        lineH3.addWidget(self.button_rules, alignment=Qt.AlignCenter)
        lineH3.addWidget(self.button_start, alignment=Qt.AlignCenter)
        self.layout.addLayout(lineH1)
        self.layout.addWidget(self.rules, alignment=Qt.AlignHCenter)
        self.layout.addLayout(lineH3)


        
        self.timer = QTimer(self)
        self.timer.timeout.connect(self.update_timer)

        self.windowGroup = WindowGroup()
        
    def update_timer(self):        
        self.question.setText(f'<h1 style="color: rgb(250, 55, 55);">{self.num}</h1>')
        if self.num == 0:
            self.timer.stop()
            self.setStyleSheet("""
                QLabel, QPushButton {
                    font-size: 20pt;
                }
                #rules { 
                    background-color: #ccffbd;
                }
                #windowgroup > QLabel { 
                    font-size: 11pt;
                }
                #windowgroup > QGroupBox { 
                    background-color: #a44500;
                    font-size: 20pt;
                }
                QPushButton {
                    background-color: #D98C00;
                    font-size: 34px;
                }
                QPushButton:hover:pressed {
                    background-color: red;
                    color: #fff;    
                }
                QPushButton:hover {
                    background-color: #0082fc;
                    border: 2px solid #FFA6D5;
                }
                #centralWidget {
                    background-image: url(first.jpg);
                }
            """) 
            self.question.setPixmap(QPixmap("million.png"))
            self.num = 3
            self.rules.hide()
            self.button_start.hide()
            self.button_rules.hide()
            self.layout.addWidget(self.windowGroup, alignment=Qt.AlignHCenter)


            return            
        self.num -= 1        

    def _start(self):
        self.timer.start(1000)
        
        

if __name__ == "__main__":
    import sys
    app = QApplication(sys.argv)
    app.setStyleSheet("""
        QLabel, QPushButton{ 
            font-size: 20pt;
        }
        #rules { 
            background-color: #ccffbd;
        }
        #centralWidget {
            background-image: url(first.jpg);
        }

    """)     
    w = MainWindow()          
    w.setWindowTitle('Million')  
    w.resize(1700, 770)
    w.move(150, 110)
    w.show()                           
    sys.exit(app.exec_())
python
  • 1 个回答
  • 10 Views
Martin Hope
Nikita Khistov
Asked: 2022-05-27 19:09:00 +0000 UTC

在界面背景中添加图片

  • 1

倒计时后需要从图像中添加背景:

丰

编码:

from PyQt5.QtCore import Qt, QTimer, QSize
from PyQt5.QtWidgets import QApplication, QWidget, QPushButton, \
    QLabel, QVBoxLayout, QHBoxLayout, QRadioButton, QGroupBox, QButtonGroup
from PyQt5.QtGui import QPixmap, QImage, QPalette, QBrush
import webbrowser

class WindowGroup(QWidget):
    def __init__(self):
        super().__init__()
        
        self.label = QLabel('Group')

        self.radioGroupBox = QGroupBox("Варианты ответов") 
        self.radioGroup = QButtonGroup() 

        self.rbtn_1 = QRadioButton('1')
        self.rbtn_2 = QRadioButton('2')
        self.rbtn_3 = QRadioButton('3')
        self.rbtn_4 = QRadioButton('34')

        self.radioGroup.addButton(self.rbtn_1)
        self.radioGroup.addButton(self.rbtn_2)
        self.radioGroup.addButton(self.rbtn_3)
        self.radioGroup.addButton(self.rbtn_4)

        layout_ans1 = QHBoxLayout()  
        layout_ans2 = QVBoxLayout()
        layout_ans3 = QVBoxLayout()
        layout_ans2.addWidget(self.rbtn_1) 
        layout_ans2.addWidget(self.rbtn_2)
        layout_ans3.addWidget(self.rbtn_3) 
        layout_ans3.addWidget(self.rbtn_4)

        layout_ans1.addLayout(layout_ans2)
        layout_ans1.addLayout(layout_ans3) 

        self.radioGroupBox.setLayout(layout_ans1)

        layout = QVBoxLayout(self)
        layout.addWidget(self.label, alignment=Qt.AlignCenter)
        layout.addWidget(self.radioGroupBox)


class MainWindow(QWidget):
    def __init__(self):
        super().__init__()

        self.num = 3
        self.question = QLabel('<h1 style="color: rgb(250, 55, 55);">Правила гри')

        self.rules = QLabel('''Гра "Хто хоче стати мільйонером?" 
\
Ви повинні правильно відповісти на низку питань \
з кількома варіантами відповідей, щоб заробити 3.000.000 грн. \
Всього 15 питань, кожне питання коштує певної суми грошей, \
учасники не мають жодних тимчасових обмежень для надання \
відповіді. Учасники також отримують три види підказок, щоб допомогти собі, \
якщо вони застрягли на конкретному питанні.  
\
Більше ознайомитися з правилами можна, натиснувши на кнопку. 
\
Хай щастить!''')
        self.rules.setObjectName('rules')
        self.rules.setWordWrap(True)    

        self.button_rules = QPushButton('Правила')
        self.button_rules.clicked.connect(lambda: webbrowser.open('https://ru.wwbm.com/rules'))
        self.button_rules.setFixedSize(300,50)

        self.button_start = QPushButton('Почати', clicked=self._start)  
        self.button_start.setFixedSize(300,50)
        app.setStyleSheet("QLabel, QPushButton{font-size: 20pt;}#rules { background-color: #ccffbd;}")      
        
        self.layout = QVBoxLayout(self)
        lineH1 = QHBoxLayout()
        lineH2 = QHBoxLayout()
        lineH3 = QHBoxLayout()
        lineH1.addWidget(self.question, alignment=Qt.AlignHCenter)
        lineH2.addWidget(self.rules)
        lineH3.addWidget(self.button_rules, alignment=Qt.AlignCenter)
        lineH3.addWidget(self.button_start, alignment=Qt.AlignCenter)
        self.layout.addLayout(lineH1)
        self.layout.addWidget(self.rules, alignment=Qt.AlignHCenter)
        self.layout.addLayout(lineH3)
        
        self.timer = QTimer(self)
        self.timer.timeout.connect(self.update_timer)

        self.windowGroup = WindowGroup()
        
    def update_timer(self):        
        self.question.setText(f'<h1 style="color: rgb(250, 55, 55);">{self.num}</h1>')
        if self.num == 0:
            self.timer.stop()
            self.question.setPixmap(QPixmap("million.png"))
            self.num = 3
            self.rules.hide()
            self.button_start.hide()
            self.button_rules.hide()
            self.layout.addWidget(self.windowGroup, alignment=Qt.AlignHCenter)

            return            
        self.num -= 1        

    def _start(self):
        self.timer.start(1000)
        

if __name__ == "__main__":
    import sys
    app = QApplication(sys.argv)
    app.setStyleSheet("QLabel{font-size: 20pt;}#rules { background-color: #ccffbd;}")
    w = MainWindow()          
    w.setWindowTitle('Million')  
    w.resize(850, 770)
    w.move(610, 110)
    w.show()                           
    sys.exit(app.exec_())
python
  • 1 个回答
  • 10 Views
Martin Hope
Nikita Khistov
Asked: 2022-05-27 04:27:17 +0000 UTC

插入一组按钮

  • 1

我需要在完成倒计时后,不仅显示图片,而且还有一组答案选项self.rules。

这是程序代码:`

from PyQt5.QtCore import Qt, QTimer
from PyQt5.QtWidgets import QApplication, QWidget, QPushButton, \
    QLabel, QVBoxLayout, QHBoxLayout, QRadioButton, QMessageBox, QGroupBox, QButtonGroup
from PyQt5.QtGui import QPixmap
import webbrowser


class MainWindow(QWidget):
    def __init__(self):
        super().__init__()
        
        self.num = 3

        self.question = QLabel('<h1 style="color: rgb(250, 55, 55);">Правила гри')

        self.rules = QLabel('''Гра "Хто хоче стати мільйонером?" 
\
Ви повинні правильно відповісти на низку питань \
з кількома варіантами відповідей, щоб заробити 3.000.000 грн. \
Всього 15 питань, кожне питання коштує певної суми грошей, \
учасники не мають жодних тимчасових обмежень для надання \
відповіді. Учасники також отримують три види підказок, щоб допомогти собі, \
якщо вони застрягли на конкретному питанні.  
\
Більше ознайомитися з правилами можна, натиснувши на кнопку. 
\
Хай щастить!''')
        self.rules.setObjectName('rules')
        self.rules.setWordWrap(True)    

        self.button_rules = QPushButton('Правила')
        self.button_rules.clicked.connect(lambda: webbrowser.open('https://ru.wwbm.com/rules'))
        self.button_rules.setFixedSize(300,50)


        self.button_start = QPushButton('Почати', clicked=self._start)  
        self.button_start.setFixedSize(300,50)
        app.setStyleSheet("QLabel, QPushButton{font-size: 20pt;}#rules { background-color: #ccffbd;}")      
        
        layout = QVBoxLayout(self)
        lineH1 = QHBoxLayout(self)
        lineH2 = QHBoxLayout(self)
        lineH3 = QHBoxLayout(self)
        lineH1.addWidget(self.question, alignment=Qt.AlignHCenter)
        lineH2.addWidget(self.rules)
        lineH3.addWidget(self.button_rules, alignment=Qt.AlignCenter)
        lineH3.addWidget(self.button_start, alignment=Qt.AlignCenter)
        layout.addLayout(lineH1)
        layout.addWidget(self.rules, alignment=Qt.AlignHCenter)
        layout.addLayout(lineH3)

        self.timer = QTimer(self)
        self.timer.timeout.connect(self.update_timer)
        
    def update_timer(self):        
        self.question.setText(f'<h1 style="color: rgb(250, 55, 55);">{self.num}</h1>')
        if self.num == 0:
            self.timer.stop()
            self.question.setPixmap(QPixmap("million.png"))
            self.num = 3
            self.rules.hide()
            self.button_start.hide()
            self.button_rules.hide()
            return            
        self.num -= 1        

    def _start(self):
        self.timer.start(1000)
        

if __name__ == "__main__":
    import sys
    app = QApplication(sys.argv)
    app.setStyleSheet("QLabel{font-size: 20pt;}#rules { background-color: #ccffbd;}")
    w = MainWindow()          
    w.setWindowTitle('WindowTitle')    
    w.resize(850, 770)
    w.move(610, 110)
    w.show()                           
    sys.exit(app.exec_())

这是需要插入到之前程序中的答案组代码,在图片下:

from PyQt5.QtCore import Qt
from PyQt5.QtWidgets import (QApplication, QWidget, QPushButton, QLabel, QVBoxLayout, QHBoxLayout, QRadioButton, QGroupBox, QButtonGroup)

# створення додатка і головного вікна
app = QApplication([])
main_win = QWidget()
#створення віджетів головного вікна
main_win.setWindowTitle('Таблиця')
main_win.resize(850, 770)
main_win.move(610, 110)

label = QLabel('Group')

RadioGroupBox = QGroupBox("Варианты ответов") # группа на экране для переключателей с ответами
RadioGroup = QButtonGroup() # а это для группировки переключателей, чтобы управлять их поведением

rbtn_1 = QRadioButton('1')
rbtn_2 = QRadioButton('2')
rbtn_3 = QRadioButton('3')
rbtn_4 = QRadioButton('34')

RadioGroup.addButton(rbtn_1)
RadioGroup.addButton(rbtn_2)
RadioGroup.addButton(rbtn_3)
RadioGroup.addButton(rbtn_4)

layout_ans1 = QHBoxLayout()  
layout_ans2 = QVBoxLayout()
layout_ans3 = QVBoxLayout()
layout_ans2.addWidget(rbtn_1) 
layout_ans2.addWidget(rbtn_2)
layout_ans3.addWidget(rbtn_3) 
layout_ans3.addWidget(rbtn_4)

layout_ans1.addLayout(layout_ans2)
layout_ans1.addLayout(layout_ans3) 

RadioGroupBox.setLayout(layout_ans1)

layout = QVBoxLayout()
layout.addWidget(label, alignment=Qt.AlignCenter)
layout.addWidget(RadioGroupBox)

main_win.setLayout(layout)
main_win.show()
app.exec()
python
  • 1 个回答
  • 10 Views
Martin Hope
Nikita Khistov
Asked: 2022-04-28 04:39:57 +0000 UTC

PyQt5中的倒计时

  • 1

帮我弄一下,让按下“ Start”按钮后,窗口上大量出现倒计时3,2,1然后显示一个带有这样图片的窗口。


百万.png

谁愿意成为百万富翁?


主.py:

from PyQt5.QtCore import Qt
from PyQt5.QtWidgets import QApplication, QWidget, QPushButton, QLabel, QVBoxLayout, QHBoxLayout, QRadioButton, QMessageBox
import webbrowser

app = QApplication([])
main_win = QWidget()

main_win.setWindowTitle('Хто хоче стати мільйонером?')
main_win.resize(850, 770)
main_win.move(610, 110)
question = QLabel('<h1 style="color: rgb(250, 55, 55);">Правила гри')
app.setStyleSheet("QLabel{font-size: 20pt;}#rules { background-color: #ccffbd;}")

rules = QLabel('''Гра "Хто хоче стати мільйонером?" 
\
Ви повинні правильно відповісти на низку питань \
з кількома варіантами відповідей, щоб заробити 3.000.000 грн. \
Всього 15 питань, кожне питання коштує певної суми грошей, \
учасники не мають жодних тимчасових обмежень для надання \
відповіді. Учасники також отримують три види підказок, щоб допомогти собі, \
якщо вони застрягли на конкретному питанні.  
\
Більше ознайомитися з правилами можна, натиснувши на кнопку. 
\
Хай щастить!''')
rules.setObjectName('rules')
rules.setWordWrap(True) 


button_rules = QPushButton('Правила')
button_rules.clicked.connect(lambda: webbrowser.open('https://ru.wwbm.com/rules'))
button_rules.setFixedSize(300,50)

button_start = QPushButton('Start')
button_start.setFixedSize(300,50)
app.setStyleSheet("QLabel, QPushButton{font-size: 20pt;}#rules { background-color: #ccffbd;}")

line = QVBoxLayout()
lineH1 = QHBoxLayout()
lineH2 = QHBoxLayout()
lineH3 = QHBoxLayout()
lineH1.addWidget(question, alignment = Qt.AlignCenter)
lineH2.addWidget(rules, alignment = Qt.AlignCenter)
lineH3.addWidget(button_rules, alignment=Qt.AlignCenter)
lineH3.addWidget(button_start, alignment=Qt.AlignCenter)

main_win.setLayout(line)
line.addLayout(lineH1)
line.addLayout(lineH2)
line.addLayout(lineH3)
main_win.show()
app.exec()
python
  • 1 个回答
  • 10 Views
Martin Hope
Nikita Khistov
Asked: 2022-04-21 20:12:56 +0000 UTC

QLabel 的自动换行

  • 1

我需要它QLabel自动逐行换行。
我听说你可以用 command 做到这一点QLabel::setWordWrap(true),但由于某种原因它对我不起作用。

请帮帮我。

from PyQt5.QtCore import Qt
from PyQt5.QtWidgets import QApplication, QWidget, QPushButton, QLabel, QVBoxLayout, QHBoxLayout, QRadioButton, QMessageBox


app = QApplication([])
main_win = QWidget()
main_win.setWindowTitle('Хто хоче стати мільйонером?')
main_win.resize(1920,1080)
question = QLabel('<h1 style="color: rgb(250, 55, 55);">Правила игры')
app.setStyleSheet("QLabel{font-size: 18pt;}")
rules = QLabel('Игра Кто хочет стать миллионером? - это конкурс викторина, в котором участники                     должны правильно ответить на ряд вопросов с несколькими вариантами ответов, чтобы перейти на следующий уровень. Всего 15 вопросов, каждый вопрос стоит определенной суммы денег, участники не имеют никаких временных ограничений для предоставления ответа. Участники также получают три вида подсказок, чтобы помочь себе, если они застряли на конкретном вопросе.')


line = QVBoxLayout()
lineH1 = QHBoxLayout()
lineH2 = QHBoxLayout()
lineH1.addWidget(question, alignment = Qt.AlignCenter)
lineH2.addWidget(rules, alignment = Qt.AlignCenter)

main_win.setLayout(line)
line.addLayout(lineH1)
line.addLayout(lineH2)
main_win.show()
app.exec()
python
  • 1 个回答
  • 10 Views
Martin Hope
Nikita Khistov
Asked: 2022-03-26 02:55:30 +0000 UTC

在按钮上随机写下 CLICK 这个词

  • 1

问题是,我想做的是在每个按钮上随机显示单词CLICK。
如果按下带有单词的按钮CLICK,则它会亮起绿色,但如果按下不带单词的按钮CLICK,则会以红色突出显示。

请帮忙,到目前为止我还不熟悉PyQt5库。而且我不知道所有的命令。

代码示例:

###
from PyQt5.QtCore import Qt
from PyQt5.QtWidgets import QApplication, QWidget, QPushButton, QLabel, QVBoxLayout,     
QHBoxLayout, QPushButton, QMessageBox
from random import*
###
class MainWindow(QWidget):
    def __init__(self):
        super().__init__()
        self.setWindowTitle('Fast Clicker')
        self.resize(800,500)
    
        button1 = QPushButton()
        button2 = QPushButton()
        button3 = QPushButton()
        button4 = QPushButton()
    
        h_layout = QHBoxLayout()
        h_layout.addWidget(button1)
        h_layout.addWidget(button2)
        h_layout.addWidget(button3)
        h_layout.addWidget(button4)

        main_layout = QVBoxLayout(self)
        main_layout.addLayout(h_layout)
###
Stylesheet = '''
QWidget {
    background-color:rgb(100,200, 255);
}
QPushButton {
    background-color:yellow;
    max-width:  96px;
    max-height: 125px;   
    border: 8px solid rgb(80, 80, 255);
}
QPushButton:hover:pressed {
    background-color: red;
}

'''
###
if __name__ == '__main__':
    import sys
    app = QApplication(sys.argv)
    app.setStyleSheet(Stylesheet) 
    ex = MainWindow()
    ex.show()
    sys.exit(app.exec_())
python
  • 1 个回答
  • 10 Views
Martin Hope
Nikita Khistov
Asked: 2022-03-26 01:06:53 +0000 UTC

在按钮周围做一个挡板

  • 2

有一个应用程序,问题是,我想在按钮周围做一个边框,例如,红色(就像在按钮后面画一个比按钮多一点的矩形),但我不明白什么命令在PyQt5中需要绘制矩形。
请告诉我。

from PyQt5.QtCore import Qt
from PyQt5.QtWidgets import QApplication, QWidget, QPushButton, QLabel, QVBoxLayout,                         
QHBoxLayout, QPushButton, QMessageBox
from random import*


app = QApplication([])
main_win = QWidget()

main_win.setWindowTitle('Fast Clicker')
main_win.resize(800,500)
main_win.setStyleSheet("background-color:rgb(100,200, 255)")
button1 = QPushButton()
button2 = QPushButton()
button3 = QPushButton()
button4 = QPushButton()
button1.setStyleSheet("background-color: yellow")
button2.setStyleSheet("background-color: yellow")
button3.setStyleSheet("background-color: yellow")
button4.setStyleSheet("background-color: yellow")
button1.setFixedSize(100,125)
button2.setFixedSize(100,125)
button3.setFixedSize(100,125)
button4.setFixedSize(100,125)

line = QVBoxLayout()
lineH1 = QHBoxLayout()
lineH1.addWidget(button1, alignment = Qt.AlignCenter)
lineH1.addWidget(button2, alignment = Qt.AlignCenter)
lineH1.addWidget(button3, alignment = Qt.AlignCenter)
lineH1.addWidget(button4, alignment = Qt.AlignCenter)

main_win.setLayout(line)
line.addLayout(lineH1)
main_win.show()
app.exec()
python
  • 2 个回答
  • 10 Views

Sidebar

Stats

  • 问题 10021
  • Answers 30001
  • 最佳答案 8000
  • 用户 6900
  • 常问
  • 回答
  • Marko Smith

    我看不懂措辞

    • 1 个回答
  • Marko Smith

    请求的模块“del”不提供名为“default”的导出

    • 3 个回答
  • Marko Smith

    "!+tab" 在 HTML 的 vs 代码中不起作用

    • 5 个回答
  • Marko Smith

    我正在尝试解决“猜词”的问题。Python

    • 2 个回答
  • Marko Smith

    可以使用哪些命令将当前指针移动到指定的提交而不更改工作目录中的文件?

    • 1 个回答
  • Marko Smith

    Python解析野莓

    • 1 个回答
  • Marko Smith

    问题:“警告:检查最新版本的 pip 时出错。”

    • 2 个回答
  • Marko Smith

    帮助编写一个用值填充变量的循环。解决这个问题

    • 2 个回答
  • Marko Smith

    尽管依赖数组为空,但在渲染上调用了 2 次 useEffect

    • 2 个回答
  • Marko Smith

    数据不通过 Telegram.WebApp.sendData 发送

    • 1 个回答
  • Martin Hope
    Alexandr_TT 2020年新年大赛! 2020-12-20 18:20:21 +0000 UTC
  • Martin Hope
    Alexandr_TT 圣诞树动画 2020-12-23 00:38:08 +0000 UTC
  • Martin Hope
    Air 究竟是什么标识了网站访问者? 2020-11-03 15:49:20 +0000 UTC
  • Martin Hope
    Qwertiy 号码显示 9223372036854775807 2020-07-11 18:16:49 +0000 UTC
  • Martin Hope
    user216109 如何为黑客设下陷阱,或充分击退攻击? 2020-05-10 02:22:52 +0000 UTC
  • Martin Hope
    Qwertiy 并变成3个无穷大 2020-11-06 07:15:57 +0000 UTC
  • Martin Hope
    koks_rs 什么是样板代码? 2020-10-27 15:43:19 +0000 UTC
  • Martin Hope
    Sirop4ik 向 git 提交发布的正确方法是什么? 2020-10-05 00:02:00 +0000 UTC
  • Martin Hope
    faoxis 为什么在这么多示例中函数都称为 foo? 2020-08-15 04:42:49 +0000 UTC
  • Martin Hope
    Pavel Mayorov 如何从事件或回调函数中返回值?或者至少等他们完成。 2020-08-11 16:49:28 +0000 UTC

热门标签

javascript python java php c# c++ html android jquery mysql

Explore

  • 主页
  • 问题
    • 热门问题
    • 最新问题
  • 标签
  • 帮助

Footer

RError.com

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

帮助

© 2023 RError.com All Rights Reserve   沪ICP备12040472号-5