Сделать масштаб окна до размера экрана в PyQt5 - PullRequest
0 голосов
/ 27 сентября 2018

В настоящее время я разрабатываю веб-браузер на Python с использованием Qt5.Просто интересно: как мне сделать масштабирование окна до размера экрана?Например, Chromium и Firefox адаптируются к размеру экрана, на котором они находятся, при максимизации.

Вот как Chromium отображает Google при максимизации:

enter image description here

РЕДАКТИРОВАТЬ: Поскольку меня попросили добавить некоторыепример кода, вот код:

from PyQt5.QtWidgets import QApplication, QWidget 
from ui_output import Ui_Form

app = QApplication(sys.argv) 


class MainWindow(QWidget, Ui_Form):   
    def __init__(self, parent=None):     
        super(MainWindow, self).__init__(parent)     
        self.setupUi(self)     
        self.go_button.clicked.connect(self.pressed)   
    def pressed(self):     
        self.webView.setUrl(QUrl(self.lineEdit.displayText()))

view = MainWindow() 
view.show() 
view.showMaximized()
app.exec_()

enter image description here

1 Ответ

0 голосов
/ 27 сентября 2018

Вы должны научиться использовать макеты, эти элементы используются для управления размерами виджетов внутри другого.

В Qt Designer задача очень проста, в вашем случае выберите 4 элемента всверху и нажмите кнопку: enter image description here, затем нажмите в пустом месте внутри главного окна и нажмите кнопку: enter image description here.В конце вы получите следующую структуру:

enter image description here

enter image description here

Генерация следующего.ui:

<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
 <class>Form</class>
 <widget class="QWidget" name="Form">
  <property name="geometry">
   <rect>
    <x>0</x>
    <y>0</y>
    <width>400</width>
    <height>300</height>
   </rect>
  </property>
  <property name="windowTitle">
   <string>Form</string>
  </property>
  <layout class="QVBoxLayout" name="verticalLayout">
   <item>
    <layout class="QHBoxLayout" name="horizontalLayout">
     <item>
      <widget class="QPushButton" name="pushButton">
       <property name="text">
        <string>&lt;---</string>
       </property>
      </widget>
     </item>
     <item>
      <widget class="QPushButton" name="pushButton_2">
       <property name="text">
        <string>---&gt;</string>
       </property>
      </widget>
     </item>
     <item>
      <widget class="QLineEdit" name="lineEdit"/>
     </item>
     <item>
      <widget class="QPushButton" name="go_button">
       <property name="text">
        <string>GO</string>
       </property>
      </widget>
     </item>
    </layout>
   </item>
   <item>
    <widget class="QWebView" name="webView">
     <property name="url">
      <url>
       <string>about:blank</string>
      </url>
     </property>
    </widget>
   </item>
  </layout>
 </widget>
 <customwidgets>
  <customwidget>
   <class>QWebView</class>
   <extends>QWidget</extends>
   <header>QtWebKitWidgets/QWebView</header>
  </customwidget>
 </customwidgets>
 <resources/>
 <connections/>
</ui>

ui_output.py

# -*- coding: utf-8 -*-

# Form implementation generated from reading ui file 'ui_output.ui'
#
# Created by: PyQt5 UI code generator 5.11.2
#
# WARNING! All changes made in this file will be lost!

from PyQt5 import QtCore, QtGui, QtWidgets

class Ui_Form(object):
    def setupUi(self, Form):
        Form.setObjectName("Form")
        Form.resize(400, 300)
        self.verticalLayout = QtWidgets.QVBoxLayout(Form)
        self.verticalLayout.setObjectName("verticalLayout")
        self.horizontalLayout = QtWidgets.QHBoxLayout()
        self.horizontalLayout.setObjectName("horizontalLayout")
        self.pushButton = QtWidgets.QPushButton(Form)
        self.pushButton.setObjectName("pushButton")
        self.horizontalLayout.addWidget(self.pushButton)
        self.pushButton_2 = QtWidgets.QPushButton(Form)
        self.pushButton_2.setObjectName("pushButton_2")
        self.horizontalLayout.addWidget(self.pushButton_2)
        self.lineEdit = QtWidgets.QLineEdit(Form)
        self.lineEdit.setObjectName("lineEdit")
        self.horizontalLayout.addWidget(self.lineEdit)
        self.go_button = QtWidgets.QPushButton(Form)
        self.go_button.setObjectName("go_button")
        self.horizontalLayout.addWidget(self.go_button)
        self.verticalLayout.addLayout(self.horizontalLayout)
        self.webView = QtWebKitWidgets.QWebView(Form)
        self.webView.setUrl(QtCore.QUrl("about:blank"))
        self.webView.setObjectName("webView")
        self.verticalLayout.addWidget(self.webView)

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

    def retranslateUi(self, Form):
        _translate = QtCore.QCoreApplication.translate
        Form.setWindowTitle(_translate("Form", "Form"))
        self.pushButton.setText(_translate("Form", "<---"))
        self.pushButton_2.setText(_translate("Form", "--->"))
        self.go_button.setText(_translate("Form", "GO"))

from PyQt5 import QtWebKitWidgets

if __name__ == "__main__":
    import sys
    app = QtWidgets.QApplication(sys.argv)
    Form = QtWidgets.QWidget()
    ui = Ui_Form()
    ui.setupUi(Form)
    Form.show()
    sys.exit(app.exec_())

main.py

import sys
from PyQt5 import QtCore ,QtWidgets
from ui_output import Ui_Form


class MainWindow(QtWidgets.QWidget, Ui_Form):   
    def __init__(self, parent=None):     
        super(MainWindow, self).__init__(parent)     
        self.setupUi(self)     
        self.go_button.clicked.connect(self.pressed)   
    def pressed(self):     
        self.webView.setUrl(QtCore.QUrl(self.lineEdit.displayText()))

if __name__ == '__main__':
    app = QtWidgets.QApplication(sys.argv) 
    view = MainWindow() 
    view.showMaximized()
    sys.exit(app.exec_())

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...