RError.com

RError.com Logo RError.com Logo

RError.com Navigation

  • 主页

Mobile menu

Close
  • 主页
  • 系统&网络
    • 热门问题
    • 最新问题
    • 标签
  • Ubuntu
    • 热门问题
    • 最新问题
    • 标签
  • 帮助
主页 / 问题 / 1251754
Accepted
Никита Пфейфер
Никита Пфейфер
Asked:2022-03-05 04:06:40 +0000 UTC2022-03-05 04:06:40 +0000 UTC 2022-03-05 04:06:40 +0000 UTC

如何在 PyQt5 中使分辨率动态化

  • 772

程序代码

我写了基础,但分辨率不是动态的。__init__(类中的第一个构造函数ApexHelper)

如何使分辨率动态化?

import sys
from PyQt5 import QtCore, QtGui, QtWidgets    
from Apex import Ui_MainWindow
from PyQt5.QtGui import QIcon 
from PyQt5.uic import loadUi
from Apex1 import Ui_other
from PyQt5.QtWidgets import *
from PyQt5.QtCore import *


class ApexHelper(QtWidgets.QMainWindow):
    def __init__(self):
        super(ApexHelper, self).__init__() 
 
        self.Apex = Ui_MainWindow()
        self.Apex.setupUi(self)
        self.NameProgramm()
        self.Apex.pushButton.clicked.connect(self.gotoWeapon)# Кнопка 
        чтобы переходить на другое окно
        ################ Теперь плавное изменение окна

    def NameProgramm(self):
        self.setWindowTitle('Apex Helper')
        self.setWindowIcon(QIcon('ff.jpg'))

    def gotoWeapon(self):
        application1=Weapon()
        widget.addWidget(application1) # даёт возможность перейти на 2 
        слайд
        widget.setCurrentIndex(widget.currentIndex()+1)
class Weapon(QtWidgets.QMainWindow):
    def __init__(self):
        super(Weapon, self).__init__()
        self.Apex1 = Ui_other()
        self.Apex1.setupUi(self)
        self.Apex1.pushButton.clicked.connect(self.gotomain)

    def gotomain(self):
        #application = ApexHelper()
        widget.addWidget(application) #ДОБАВИЛ ВИДЖЕТ ТУТ И НИЖЕ
        widget.setCurrentIndex(widget.currentIndex()+1)
    

#create app   
app = QtWidgets.QApplication(sys.argv)
application = ApexHelper()
#application.resize(550, 246)
#application.show() # работает без него


##########################################################################

widget = QtWidgets.QStackedWidget() #добавление виджетов
widget.addWidget(application) #добавить индекс в экземпляр application 
класса ApexHelper !!!!!!И ТУТ ДОБАВИЛ!!!
#widget.addWidget(application1) #добавить индекс в экземпляр application1 
класса screen2
#widget.setFixedHeight(600)
#widget.setFixedWidth(470)
widget.show() #показать виджеты
#main loop
sys.exit(app.exec())

Apex.py

from PyQt5 import QtCore, QtGui, QtWidgets


class Ui_MainWindow(object):
    def setupUi(self, MainWindow):
        MainWindow.setObjectName("MainWindow")
        MainWindow.resize(471, 614)
        MainWindow.setStyleSheet("background-color: #22222e")
        self.centralwidget = QtWidgets.QWidget(MainWindow)
        self.centralwidget.setStyleSheet("background-color: #000000")
        self.centralwidget.setObjectName("centralwidget")
        self.frame = QtWidgets.QFrame(self.centralwidget)
        self.frame.setGeometry(QtCore.QRect(110, 0, 361, 101))
        self.frame.setStyleSheet("background-color: #8B0000;\n"
"border-radius: 30;\n"
"border: 2px solid #708090\n"
"")
        self.frame.setFrameShape(QtWidgets.QFrame.StyledPanel)
        self.frame.setFrameShadow(QtWidgets.QFrame.Raised)
        self.frame.setObjectName("frame")
        self.label_2 = QtWidgets.QLabel(self.frame)
        self.label_2.setGeometry(QtCore.QRect(70, 30, 191, 31))
        font = QtGui.QFont()
        font.setFamily("Arial Black")
        font.setPointSize(18)
        font.setBold(True)
        font.setWeight(75)
        self.label_2.setFont(font)
        self.label_2.setObjectName("label_2")
        self.label = QtWidgets.QLabel(self.centralwidget)
        self.label.setGeometry(QtCore.QRect(0, 0, 101, 91))
        self.label.setText("")
        self.label.setPixmap(QtGui.QPixmap("ff.jpg"))
        self.label.setObjectName("label")
        self.pushButton = QtWidgets.QPushButton(self.centralwidget)
        self.pushButton.setGeometry(QtCore.QRect(190, 170, 75, 21))
        self.pushButton.setStyleSheet("QPushButton {\n"
"color: white;\n"
"background-color: #808080;\n"
"}")
        self.pushButton.setObjectName("pushButton")
        MainWindow.setCentralWidget(self.centralwidget)
        self.menubar = QtWidgets.QMenuBar(MainWindow)
        self.menubar.setGeometry(QtCore.QRect(0, 0, 471, 21))
        self.menubar.setObjectName("menubar")
        MainWindow.setMenuBar(self.menubar)
        self.statusbar = QtWidgets.QStatusBar(MainWindow)
        self.statusbar.setObjectName("statusbar")
        MainWindow.setStatusBar(self.statusbar)

        self.retranslateUi(MainWindow)
        QtCore.QMetaObject.connectSlotsByName(MainWindow)

    def retranslateUi(self, MainWindow):
        _translate = QtCore.QCoreApplication.translate
        MainWindow.setWindowTitle(_translate("MainWindow", "MainWindow"))
        self.label_2.setText(_translate("MainWindow", "ApexLegends"))
        self.pushButton.setText(_translate("MainWindow", "PushButton"))


if __name__ == "__main__":
    import sys
    app = QtWidgets.QApplication(sys.argv)
    MainWindow = QtWidgets.QMainWindow()
    ui = Ui_MainWindow()
    ui.setupUi(MainWindow)
    MainWindow.show()
    sys.exit(app.exec_())

Apex1.py

from PyQt5 import QtCore, QtGui, QtWidgets


class Ui_other(object):
    def setupUi(self, other):
        other.setObjectName("other")
        other.resize(524, 612)
        self.centralwidget = QtWidgets.QWidget(other)
        self.centralwidget.setObjectName("centralwidget")
        self.label = QtWidgets.QLabel(self.centralwidget)
        self.label.setGeometry(QtCore.QRect(140, 110, 261, 301))
        font = QtGui.QFont()
        font.setPointSize(36)
        self.label.setFont(font)
        self.label.setObjectName("label")
        self.pushButton = QtWidgets.QPushButton(self.centralwidget)
        self.pushButton.setGeometry(QtCore.QRect(160, 350, 75, 23))
        self.pushButton.setObjectName("pushButton")
        other.setCentralWidget(self.centralwidget)
        self.menubar = QtWidgets.QMenuBar(other)
        self.menubar.setGeometry(QtCore.QRect(0, 0, 524, 21))
        self.menubar.setObjectName("menubar")
        other.setMenuBar(self.menubar)
        self.statusbar = QtWidgets.QStatusBar(other)
        self.statusbar.setObjectName("statusbar")
        other.setStatusBar(self.statusbar)

        self.retranslateUi(other)
        QtCore.QMetaObject.connectSlotsByName(other)

    def retranslateUi(self, other):
        _translate = QtCore.QCoreApplication.translate
        other.setWindowTitle(_translate("other", "MainWindow"))
        self.label.setText(_translate("other", "ЭТО ГГ!"))
        self.pushButton.setText(_translate("other", "ОБратно"))


if __name__ == "__main__":
    import sys
    app = QtWidgets.QApplication(sys.argv)
    other = QtWidgets.QMainWindow()
    ui = Ui_other()
    ui.setupUi(other)
    other.show()
    sys.exit(app.exec_())

名称程序函数

python
  • 1 1 个回答
  • 10 Views

1 个回答

  • Voted
  1. Best Answer
    S. Nick
    2022-03-05T07:50:46Z2022-03-05T07:50:46Z

    您需要学习布局管理。从一个类开始QLayout——这是几何管理器的基类。更多 https://doc.qt.io/qt-5/qlayout.html#details

    替换您的图像并尝试:

    import sys
    from PyQt5 import QtCore, QtGui, QtWidgets
    from PyQt5.Qt import *
    
    
    #from Apex1 import Ui_other
    class Ui_other(object):
        def setupUi(self, other):
            other.setObjectName("other")
            other.resize(524, 612)
            self.centralwidget = QtWidgets.QWidget(other)
            self.centralwidget.setObjectName("centralwidget")
            self.label = QtWidgets.QLabel(self.centralwidget)
            self.label.setGeometry(QtCore.QRect(140, 110, 261, 301))
            font = QtGui.QFont()
            font.setPointSize(36)
            self.label.setFont(font)
            self.label.setObjectName("label")
            self.pushButton = QtWidgets.QPushButton(self.centralwidget)
            self.pushButton.setGeometry(QtCore.QRect(160, 350, 75, 23))
            self.pushButton.setObjectName("pushButton")
            other.setCentralWidget(self.centralwidget)
            self.menubar = QtWidgets.QMenuBar(other)
            self.menubar.setGeometry(QtCore.QRect(0, 0, 524, 21))
            self.menubar.setObjectName("menubar")
            other.setMenuBar(self.menubar)
            self.statusbar = QtWidgets.QStatusBar(other)
            self.statusbar.setObjectName("statusbar")
            other.setStatusBar(self.statusbar)
    
            self.retranslateUi(other)
            QtCore.QMetaObject.connectSlotsByName(other)
    
        def retranslateUi(self, other):
            _translate = QtCore.QCoreApplication.translate
            other.setWindowTitle(_translate("other", "MainWindow"))
            self.label.setText(_translate("other", "ЭТО ГГ!"))
            self.pushButton.setText(_translate("other", "ОБратно"))
    
    
    #from Apex import Ui_MainWindow
    class Ui_MainWindow(object):
        def setupUi(self, MainWindow):
            MainWindow.setObjectName("MainWindow")
            MainWindow.resize(471, 614)
            MainWindow.setStyleSheet("background-color: #22222e")
            self.centralwidget = QtWidgets.QWidget(MainWindow)
            self.centralwidget.setStyleSheet("background-color: #000000")
            self.centralwidget.setObjectName("centralwidget")
            self.frame = QtWidgets.QFrame(self.centralwidget)
            self.frame.setGeometry(QtCore.QRect(110, 0, 361, 101))
            self.frame.setStyleSheet("background-color: #8B0000;\n"
    "border-radius: 30;\n"
    "border: 2px solid #708090\n"
    "")
            self.frame.setFrameShape(QtWidgets.QFrame.StyledPanel)
            self.frame.setFrameShadow(QtWidgets.QFrame.Raised)
            self.frame.setObjectName("frame")
            self.label_2 = QtWidgets.QLabel(self.frame)
            self.label_2.setGeometry(QtCore.QRect(70, 30, 191, 31))
            font = QtGui.QFont()
            font.setFamily("Arial Black")
            font.setPointSize(18)
            font.setBold(True)
            font.setWeight(75)
            self.label_2.setFont(font)
            self.label_2.setObjectName("label_2")
            
            self.label = QtWidgets.QLabel(self.centralwidget)
            self.label.setGeometry(QtCore.QRect(0, 0, 101, 91))
            self.label.setText("")
            self.label.setPixmap(QtGui.QPixmap("lena.jpg").scaled(120, 120))         # +++ scaled
            self.label.setObjectName("label")
            
            self.pushButton = QtWidgets.QPushButton(self.centralwidget)
            self.pushButton.setGeometry(QtCore.QRect(190, 170, 75, 21))
            self.pushButton.setStyleSheet("QPushButton {\n"
    "color: white;\n"
    "background-color: #808080;\n"
    "}")
            self.pushButton.setObjectName("pushButton")
            MainWindow.setCentralWidget(self.centralwidget)
            self.menubar = QtWidgets.QMenuBar(MainWindow)
            self.menubar.setGeometry(QtCore.QRect(0, 0, 471, 21))
            self.menubar.setObjectName("menubar")
            MainWindow.setMenuBar(self.menubar)
            self.statusbar = QtWidgets.QStatusBar(MainWindow)
            self.statusbar.setObjectName("statusbar")
            MainWindow.setStatusBar(self.statusbar)
    
            self.retranslateUi(MainWindow)
            QtCore.QMetaObject.connectSlotsByName(MainWindow)
    
        def retranslateUi(self, MainWindow):
            _translate = QtCore.QCoreApplication.translate
            MainWindow.setWindowTitle(_translate("MainWindow", "MainWindow"))
            self.label_2.setText(_translate("MainWindow", "ApexLegends"))
            self.pushButton.setText(_translate("MainWindow", "PushButton"))
    
            
    class Weapon(QtWidgets.QMainWindow, Ui_other):
        def __init__(self):
            super(Weapon, self).__init__()
            self.setupUi(self)
            
            vbox = QVBoxLayout(self.centralwidget)
            vbox.addWidget(self.label, alignment=Qt.AlignCenter)
            vbox.addWidget(self.pushButton, alignment=Qt.AlignCenter)
    
    
    class ApexHelper(QtWidgets.QMainWindow, Ui_MainWindow):
        def __init__(self, parent=None):
            super(ApexHelper, self).__init__(parent) 
            self.setupUi(self)
            
            vbox = QVBoxLayout(self.frame)
            self.label_2.setFixedSize(200, 50)
            vbox.addWidget(self.label_2, alignment=Qt.AlignHCenter | QtCore.Qt.AlignTop)  
            vbox.addStretch(0)        
            vbox.addWidget(self.label, alignment=Qt.AlignLeft | QtCore.Qt.AlignVCenter) 
            vbox.addStretch(0)
            
            layout = QGridLayout(self.centralwidget)
            layout.setContentsMargins(0, 0, 0, 0)
            layout.addWidget(self.frame, 1, 1) 
            layout.addWidget(self.pushButton, 3, 1, alignment=Qt.AlignCenter)
            
            layout.setRowStretch(0, 2)
            layout.setRowStretch(1, 7)
            layout.setRowStretch(2, 2)
            layout.setRowStretch(3, 2)
            layout.setRowStretch(4, 2)
            layout.setColumnStretch(0, 2)
            layout.setColumnStretch(1, 12)
            layout.setColumnStretch(2, 2)
    
    
    class MainWindow(QMainWindow):
        def __init__(self):
            super().__init__()
    
            self.centralWidget = QWidget()
            self.setCentralWidget(self.centralWidget)        
            
            self.apexHelper = ApexHelper(self)
            self.apexHelper.pushButton.clicked.connect(self.gotoWeapon) 
    
            self.weapon = Weapon()
            self.weapon.pushButton.clicked.connect(self.gotomain)
    
            
            self.stack = QStackedWidget()                 
            self.stack.addWidget(self.apexHelper)
            self.stack.addWidget(self.weapon)
     
            self.stack.setCurrentIndex(0)
            self.nameProgramm(self.stack.currentIndex())
            
            hbox = QHBoxLayout(self.centralWidget)
            hbox.setContentsMargins(0, 0, 0, 0)
            hbox.addWidget(self.stack)
            
        def gotoWeapon(self):  
            self.stack.setCurrentIndex(1)
            self.nameProgramm(self.stack.currentIndex())
    
        def gotomain(self): 
            self.stack.setCurrentIndex(0)
            self.nameProgramm(self.stack.currentIndex())        
    
        def nameProgramm(self, w=0):
            if w == 0:
                self.setWindowTitle('Apex Helper')
                self.setWindowIcon(QIcon('lena.jpg'))
            elif w == 1:   
                self.setWindowTitle('Weapon')
                self.setWindowIcon(QIcon('im.png'))
                
    
    if __name__ == "__main__": 
        app = QtWidgets.QApplication(sys.argv)
        w = MainWindow()
        w.resize(700, 450)
        w.show()
        sys.exit(app.exec_())
    

    在此处输入图像描述

    • 1

相关问题

  • 是否可以以某种方式自定义 QTabWidget?

  • telebot.anihelper.ApiException 错误

  • Python。检查一个数字是否是 3 的幂。输出 无

  • 解析多个响应

  • 交换两个数组的元素,以便它们的新内容也反转

Sidebar

Stats

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

    表格填充不起作用

    • 2 个回答
  • Marko Smith

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

    • 1 个回答
  • Marko Smith

    在 PyQt5 中停止进程

    • 1 个回答
  • Marko Smith

    我的脚本不工作

    • 1 个回答
  • Marko Smith

    在文本文件中写入和读取列表

    • 2 个回答
  • Marko Smith

    如何像屏幕截图中那样并排排列这些块?

    • 1 个回答
  • Marko Smith

    确定文本文件中每一行的字符数

    • 2 个回答
  • Marko Smith

    将接口对象传递给 JAVA 构造函数

    • 1 个回答
  • Marko Smith

    正确更新数据库中的数据

    • 1 个回答
  • Marko Smith

    Python解析不是css

    • 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