当您单击toNextPage和toPreviousPage按钮时,会有一个窗口,其中的某些内容应该更改。
我试图通过功能为每个“页面”实现这一点。也就是说,窗口,2个按钮和“页眉”必须保留在原处。在按钮和“标题”之间有一个地方,该地方将显示功能中描述的内容。该功能在代码中被描述为“ page_1”,但是当您单击调用该功能的“ toNextPage”按钮时,窗口中的任何内容都不会改变。
from PyQt5 import QtCore, QtGui, QtWidgets
class Ui_FirstTheme(object):
def setupUi(self, FirstTheme):
FirstTheme.setObjectName("FirstTheme")
FirstTheme.resize(600, 700)
FirstTheme.setMinimumSize(QtCore.QSize(600, 700))
FirstTheme.setMaximumSize(QtCore.QSize(600, 700))
icon = QtGui.QIcon.fromTheme("icon.ico")
FirstTheme.setWindowIcon(icon)
FirstTheme.setStyleSheet("background-color: #070506;\n"
"color: grey;\n"
"")
self.centralwidget = QtWidgets.QWidget(FirstTheme)
self.centralwidget.setObjectName("centralwidget")
FirstTheme.setCentralWidget(self.centralwidget)
QtCore.QMetaObject.connectSlotsByName(FirstTheme)
FirstTheme.setWindowTitle("1.Знайомство з Python")
#This is variable with number of page
self.pagination = 1
#This is image (space) where situated the topic of theme
self.header = QtWidgets.QLabel(self.centralwidget)
self.header.setGeometry(QtCore.QRect(0, 0, 600, 103))
self.header.setStyleSheet("image: url(:/images/bg-header.jpg)")
self.header.setText("")
self.header.setObjectName("header")
#This is topic of the theme.
self.ThemeName = QtWidgets.QLabel(self.centralwidget)
self.ThemeName.setGeometry(QtCore.QRect(39, 21, 522, 60))
font = QtGui.QFont()
font.setFamily("Arial Black")
font.setPointSize(18)
font.setBold(True)
font.setWeight(75)
self.ThemeName.setFont(font)
self.ThemeName.setStyleSheet("QLabel#ThemeName\n"
"{\n"
"color: #fed346;\n"
"background:none;\n"
"}")
self.ThemeName.setObjectName("ThemeName")
self.ThemeName.setText("1.Знайомство з мовою програмування\n"
" Python")
#This is pushbutton. She may change the text and images on widget to Next theme
self.toNextTheme = QtWidgets.QPushButton(self.centralwidget)
self.toNextTheme.setGeometry(QtCore.QRect(310, 662, 100, 25))
#This is font settings for text of this pushButton
font = QtGui.QFont()
font.setFamily("Arial Black")
font.setBold(True)
font.setWeight(75)
self.toNextTheme.setFont(font)
#This is css for NextPuchButton
self.toNextTheme.setStyleSheet("QPushButton#toNextTheme\n"
"{\n"
" background-color: #225765;\n"
"color: #fed346;\n"
"border-top-right-radius: 5px;\n"
"border-bottom-right-radius: 5px;\n"
"}\n"
"\n"
"QPushButton:hover#toNextTheme\n"
"{\n"
" background-color: #3674a5;\n"
"}")
self.toNextTheme.setObjectName("toNextTheme")
self.toNextTheme.setText("Далі")
#This is pushButton. She is change the text on widget to previous theme
self.toPreviousTheme = QtWidgets.QPushButton(self.centralwidget)
self.toPreviousTheme.setEnabled(True)
self.toPreviousTheme.setGeometry(QtCore.QRect(190, 662, 100, 25))
font = QtGui.QFont()
font.setFamily("Arial Black")
font.setBold(True)
font.setWeight(75)
self.toPreviousTheme.setFont(font)
self.toPreviousTheme.setStyleSheet("QPushButton#toPreviousTheme\n"
"{\n"
" background-color: #225765;\n"
"color: #fed346;\n"
"border-top-left-radius: 5px;\n"
"border-bottom-left-radius: 5px;\n"
"}\n"
"\n"
"QPushButton:hover#toPreviousTheme\n"
"{\n"
" background-color: #3674a5;\n"
"}")
self.toPreviousTheme.setObjectName("toPreviousTheme")
self.toPreviousTheme.setText("Назад")
####################################################################################
############################### CONTENT ####################################
####################################################################################
def page_1(self):
#This is topic for this label (1st paragraph)
self.P1 = QtWidgets.QLabel(self.centralwidget)
self.P1.setGeometry(QtCore.QRect(10, 110, 281, 16))
font = QtGui.QFont()
font.setPointSize(12)
font.setBold(True)
font.setWeight(75)
self.P1.setFont(font)
self.P1.setStyleSheet("background-color: none;")
self.P1.setObjectName("P1")
self.P1.setText("Коротка історична довідка")
#This is Label with text-content forwarded to 1st paragraph.
self.textToP1 = QtWidgets.QLabel(self.centralwidget)
self.textToP1.setGeometry(QtCore.QRect(10, 135, 601, 201))
font = QtGui.QFont()
font.setPointSize(10)
self.textToP1.setFont(font)
self.textToP1.setStyleSheet("background-color: none;\n"
"")
self.textToP1.setTextFormat(QtCore.Qt.PlainText)
self.textToP1.setAlignment(QtCore.Qt.AlignLeading|QtCore.Qt.AlignLeft|QtCore.Qt.AlignTop)
self.textToP1.setObjectName("textToP1")
self.textToP1.setText("Мова програмування Python була створена до 1991 року голландцем Гвідо ван Россум.\n"
"Своє ім\'я - Пайтон (або Пітон) - отримала від назви телесеріалу, а не плазуна.\n"
"Після того, як Россум розробив мову, він виклав його в Інтернет, де спільнота програмістів\n"
"приєдналося до його поліпшення.\n"
"Python активно розвивається в даний час. Часто виходять нові версії.\n"
" Існують дві підтримувані гілки: Python 2.x і Python 3.x. Тут англійською \n"
"буквою \"x\" позначається конкретний реліз. Між другим і третім Пітоном є невелика різниця. \n"
"\n"
"В даному курсі за основу береться Python 3.x.\n"
"Офіційний сайт підтримки мови - https://www.python.org.")
#This is topic for second label (2nd paragraph)
self.P2 = QtWidgets.QLabel(self.centralwidget)
self.P2.setGeometry(QtCore.QRect(10, 300, 281, 16))
font = QtGui.QFont()
font.setPointSize(12)
font.setBold(True)
font.setWeight(75)
self.P2.setFont(font)
self.P2.setStyleSheet("background-color: none;")
self.P2.setObjectName("P2")
self.P2.setText("Основні особливості мови")
#This is Label with text-content forwarded to 2nd paragraph.
self.textToP2 = QtWidgets.QLabel(self.centralwidget)
self.textToP2.setGeometry(QtCore.QRect(10, 320, 601, 311))
font = QtGui.QFont()
font.setPointSize(10)
self.textToP2.setFont(font)
self.textToP2.setStyleSheet("background-color: none;\n"
"")
self.textToP2.setTextFormat(QtCore.Qt.PlainText)
self.textToP2.setAlignment(QtCore.Qt.AlignLeading|QtCore.Qt.AlignLeft|QtCore.Qt.AlignTop)
self.textToP2.setObjectName("textToP2")
self.textToP2.setText("Python - інтерпретована мова програмування. Це означає, що вихідний код частинами\n"
"перетворюється в машинний в процесі його читання спеціальною програмою - інтерпретатором.\n"
"\n"
"Python характеризується ясним синтаксисом. Читати код на ньому легше, ніж на інших мовах\n"
"програмування, т. К. В Пітоні мало використовуються такі допоміжні синтаксичні елементи як \n"
"дужки, крапки з комою. З іншого боку, правила мови змушують програмістів робити \n"
"відступи для позначення вкладених конструкцій. Зрозуміло, що добре оформлений текст \n"
"з малою кількістю відволікаючих елементів читати і розуміти легше.\n"
"\n"
"Python - це повноціннa багато в чому універсальна мова програмування, що використовується в \n"
"різних сферах. Основна, але не єдина, підтримувана їм парадигма, - \n"
"об\'єктно-орієнтоване програмування. Однак в даному курсі ми тільки згадаємо про об\'єкти, \n"
"а будемо вивчати структурне програмування, так як воно є базою. Без знання основних \n"
"типів даних, розгалужень, циклів, функцій немає сенсу вивчати більш складні \n"
"парадигми, т. я. В них все це використовується.\n"
"\n"
"Інтерпретатори Python поширюється вільно на підставі ліцензії подібної \n"
"GNU General Public License.")
#########################################################################################
########################## FOR BUTTONS ################################
#########################################################################################
#################### ФУНКЦИОНАЛ ДЛЯ СМЕНЫ КОНТЕНТА ##########################
#########################################################################################
#self.toNextTheme.clicked.connect()
self.toNextTheme.clicked.connect(self.page_1)
import source_rc
if __name__ == "__main__":
import sys
app = QtWidgets.QApplication(sys.argv)
FirstTheme = QtWidgets.QMainWindow()
ui = Ui_FirstTheme()
ui.setupUi(FirstTheme)
FirstTheme.show()
sys.exit(app.exec_())
不要修改Qt Designer生成的代码,而是创建另一个继承的类 从适当的窗口小部件中并使用初始类来填充它。