Good afternoon friends!

I am writing the 1st program (this is very important). Sketched the body of the program in QT Designer. Tell me please ...

The meaning is:

import random a = random.randint (1,299) b = 300 - a print ("Бколько Π±ΡƒΠ΄Π΅Ρ‚", a, "+",b,"?") res = int(input("Π’Π²Π΅Π΄ΠΈΡ‚Π΅ число: ")) while res != 300: print ("\nНС Π²Π΅Ρ€Π½ΠΎ, ΠΏΠΎΠΏΡ€ΠΎΠ±ΡƒΠΉ Π΅Ρ‰Ρ‘ Ρ€Π°Π·... ") res = int(input("Π’Π²Π΅Π΄ΠΈΡ‚Π΅ число: ")) res = 300 print ("\n\n****Ахахааха... Ну Π’Ρ‹ поняли****\n") 

I can not find a suitable way to put the variable "a" in the field: textBrowser (qTextBrowser), and the variable "b" in the field textBrowser2 (qTextBrowser). Tell me, please .... screenshot below


**** UI ****

# - - coding: utf-8 - -

 # Form implementation generated from reading ui file 'design.ui' # # Created by: PyQt5 UI code generator 5.11.3 # # WARNING! All changes made in this file will be lost! from PyQt5 import QtCore, QtGui, QtWidgets class Ui_MainWindow(object): def setupUi(self, MainWindow): MainWindow.setObjectName("MainWindow") MainWindow.setEnabled(True) MainWindow.resize(224, 241) MainWindow.setCursor(QtGui.QCursor(QtCore.Qt.ArrowCursor)) self.centralwidget = QtWidgets.QWidget(MainWindow) self.centralwidget.setObjectName("centralwidget") self.label = QtWidgets.QLabel(self.centralwidget) self.label.setGeometry(QtCore.QRect(20, 10, 91, 21)) self.label.setObjectName("label") self.pushButton = QtWidgets.QPushButton(self.centralwidget) self.pushButton.setGeometry(QtCore.QRect(20, 180, 91, 31)) self.pushButton.setObjectName("pushButton") self.splitter = QtWidgets.QSplitter(self.centralwidget) self.splitter.setGeometry(QtCore.QRect(20, 100, 91, 61)) self.splitter.setOrientation(QtCore.Qt.Vertical) self.splitter.setObjectName("splitter") self.label_2 = QtWidgets.QLabel(self.splitter) self.label_2.setObjectName("label_2") self.plainTextEdit = QtWidgets.QPlainTextEdit(self.splitter) self.plainTextEdit.setObjectName("plainTextEdit") self.splitter_2 = QtWidgets.QSplitter(self.centralwidget) self.splitter_2.setGeometry(QtCore.QRect(20, 40, 181, 31)) self.splitter_2.setOrientation(QtCore.Qt.Horizontal) self.splitter_2.setObjectName("splitter_2") self.textBrowser = QtWidgets.QTextBrowser(self.splitter_2) self.textBrowser.setObjectName("textBrowser") self.label_3 = QtWidgets.QLabel(self.splitter_2) self.label_3.setObjectName("label_3") self.textBrowser_2 = QtWidgets.QTextBrowser(self.splitter_2) self.textBrowser_2.setObjectName("textBrowser_2") self.label_4 = QtWidgets.QLabel(self.splitter_2) self.label_4.setObjectName("label_4") MainWindow.setCentralWidget(self.centralwidget) self.retranslateUi(MainWindow) QtCore.QMetaObject.connectSlotsByName(MainWindow) def retranslateUi(self, MainWindow): _translate = QtCore.QCoreApplication.translate MainWindow.setWindowTitle(_translate("MainWindow", "Π‘ΡƒΠΏΠ΅Ρ€ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°")) self.label.setText(_translate("MainWindow", "Бколько Π±ΡƒΠ΄Π΅Ρ‚")) self.pushButton.setText(_translate("MainWindow", "ОкСй?")) self.label_2.setText(_translate("MainWindow", "ΠžΡ‚Π²Π΅Ρ‚:")) self.label_3.setText(_translate("MainWindow", "+")) self.label_4.setText(_translate("MainWindow", "?")) 

 ****MAIN**** import sys # Π˜ΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΡƒΠ΅ΠΌ наш интСрфСйс ΠΈΠ· Ρ„Π°ΠΉΠ»Π° from design import * from PyQt5 import QtCore, QtGui, QtWidgets class MyWin(QtWidgets.QMainWindow): def __init__(self, parent=None): QtWidgets.QWidget.__init__(self, parent) self.ui = Ui_MainWindow() self.ui.setupUi(self) # Π—Π΄Π΅ΡΡŒ прописываСм событиС наТатия Π½Π° ΠΊΠ½ΠΎΠΏΠΊΡƒ self.ui.pushButton.clicked.connect(self.MyFunction) # Пока пустая функция которая выполняСтся # ΠΏΡ€ΠΈ Π½Π°ΠΆΠ°Ρ‚ΠΈΠΈ Π½Π° ΠΊΠ½ΠΎΠΏΠΊΡƒ def MyFunction(self): pass #Π·Π°Π³Π»ΡƒΡˆΠΊΠ° if __name__=="__main__": app = QtWidgets.QApplication(sys.argv) myapp = MyWin() myapp.show() sys.exit(app.exec_()) 

enter image description here

  • Apparently, QTextBrowser not exactly the component you need. I think QTextEdit or even QLineEdit more suitable for you. - Bogdan
  • @Bogdan and what's the difference between QTextBrowser and QTextEdit / QLineEdit? - Alexandr S
  • documentation will explain you better than me - Bogdan
  • for your case, I would advise QLineEdit with readonly set (if you generate a value in the program). And for him to use the setText method - Bogdan
  • @Bogdan tell me, please .... how is it necessary to "contact" in order for the text to enter the "Value of a" window? - Alexandr S

1 answer 1

The QTextBrowser class provides an advanced hypertext-based text browser. This class extends QTextEdit ( Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для чтСния ).

main.py

 import sys # Π˜ΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΡƒΠ΅ΠΌ наш интСрфСйс ΠΈΠ· Ρ„Π°ΠΉΠ»Π° from design import * from PyQt5 import QtCore, QtGui, QtWidgets class MyWin(QtWidgets.QMainWindow): def __init__(self, parent=None): QtWidgets.QWidget.__init__(self, parent) self.ui = Ui_MainWindow() self.ui.setupUi(self) # Π—Π΄Π΅ΡΡŒ прописываСм событиС наТатия Π½Π° ΠΊΠ½ΠΎΠΏΠΊΡƒ self.ui.pushButton.clicked.connect(self.myFunction) # Пока пустая функция которая выполняСтся # ΠΏΡ€ΠΈ Π½Π°ΠΆΠ°Ρ‚ΠΈΠΈ Π½Π° ΠΊΠ½ΠΎΠΏΠΊΡƒ def myFunction(self): self.ui.plainTextEdit.setText( str(int(self.ui.textBrowser.text())+int(self.ui.textBrowser_2.text()))) #pass if __name__=="__main__": app = QtWidgets.QApplication(sys.argv) myapp = MyWin() myapp.show() sys.exit(app.exec_()) 

design.py

 from PyQt5 import QtCore, QtGui, QtWidgets class Ui_MainWindow(object): def setupUi(self, MainWindow): MainWindow.setObjectName("MainWindow") MainWindow.setEnabled(True) MainWindow.resize(224, 241) MainWindow.setCursor(QtGui.QCursor(QtCore.Qt.ArrowCursor)) self.centralwidget = QtWidgets.QWidget(MainWindow) self.centralwidget.setObjectName("centralwidget") self.label = QtWidgets.QLabel(self.centralwidget) self.label.setGeometry(QtCore.QRect(20, 10, 91, 21)) self.label.setObjectName("label") self.pushButton = QtWidgets.QPushButton(self.centralwidget) self.pushButton.setGeometry(QtCore.QRect(20, 180, 91, 31)) self.pushButton.setObjectName("pushButton") self.splitter = QtWidgets.QSplitter(self.centralwidget) self.splitter.setGeometry(QtCore.QRect(20, 100, 91, 61)) self.splitter.setOrientation(QtCore.Qt.Vertical) self.splitter.setObjectName("splitter") self.label_2 = QtWidgets.QLabel(self.splitter) self.label_2.setObjectName("label_2") # #self.plainTextEdit = QtWidgets.QPlainTextEdit(self.splitter) self.plainTextEdit = QtWidgets.QTextBrowser(self.splitter) self.plainTextEdit.setObjectName("plainTextEdit") self.splitter_2 = QtWidgets.QSplitter(self.centralwidget) self.splitter_2.setGeometry(QtCore.QRect(20, 40, 181, 31)) self.splitter_2.setOrientation(QtCore.Qt.Horizontal) self.splitter_2.setObjectName("splitter_2") # self.textBrowser = QtWidgets.QTextBrowser(self.splitter_2) self.textBrowser = QtWidgets.QLineEdit(self.splitter_2) self.textBrowser.setObjectName("textBrowser") self.label_3 = QtWidgets.QLabel(self.splitter_2) self.label_3.setObjectName("label_3") # self.textBrowser_2 = QtWidgets.QTextBrowser(self.splitter_2) self.textBrowser_2 = QtWidgets.QLineEdit(self.splitter_2) self.textBrowser_2.setObjectName("textBrowser_2") self.label_4 = QtWidgets.QLabel(self.splitter_2) self.label_4.setObjectName("label_4") MainWindow.setCentralWidget(self.centralwidget) self.retranslateUi(MainWindow) QtCore.QMetaObject.connectSlotsByName(MainWindow) def retranslateUi(self, MainWindow): _translate = QtCore.QCoreApplication.translate MainWindow.setWindowTitle(_translate("MainWindow", "Π‘ΡƒΠΏΠ΅Ρ€ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°")) self.label.setText(_translate("MainWindow", "Бколько Π±ΡƒΠ΄Π΅Ρ‚")) self.pushButton.setText(_translate("MainWindow", "ОкСй?")) self.label_2.setText(_translate("MainWindow", "ΠžΡ‚Π²Π΅Ρ‚:")) self.label_3.setText(_translate("MainWindow", "+")) self.label_4.setText(_translate("MainWindow", "?")) 

enter image description here

  • Many thanks for the tip! But in this case, in the window (How many will be) 1 and 2 - the numbers should be generated according to the principle: a = random.randint (1,299) b = 300 - a - Alexandr S
  • @AlexandrS Does not interfere with one another. Good luck to you. - S. Nick
  • one
    Thank you very much! +10 you to karma. - Alexandr S
  • @ 217323 Tell me, please - how can I display the variable "a" in window 1, respectively, and the variable "b" in window 2 ??? - Alexandr S
  • @AlexandrS you apparently want to insert text into some widget. I recommend that you form a new question. Give the latest version of your program and formulate an understandable question. - S. Nick