Найти - Пользователи
Полная версия: Почему на форме не появляются новые виджеты?
Начало » Python для новичков » Почему на форме не появляются новые виджеты?
1
andrey_krsk
Почему не видно новых виджетов? Код вроде работает. Print пишет, что виджеты существуют, а на форме их нет.
 class MyWork(QWidget):
    def __init__(self):
        QWidget.__init__(self)
        self.window = QWidget()
        self.window.resize(250,300)
        self.btn = QPushButton("Добавить виджет",self.window)
        self.btn.setGeometry(10, 30, 240, 30)
        self.btn.clicked.connect(self.lineadd)
        self.x = 0
        self.y=60
        self.lin = []
        self.lineadd()
    def fx(self):
        self.x = self.x+1
        return self.x
    def fy(self):
        self.y=self.y+20
        return self.y
    def lineadd(self):
        a = self.fx()
        b = self.fy()
        self.qle = QLineEdit((self.window))
        self.qle.setObjectName("qle" + str(a))
        self.qle.resize(120, 20)
        self.qle.move(0, b)
        self.lin.append(self.qle)
        self.qle.setFocus()
        self.qlbl = QLabel((self.window))
        self.qlbl.setFrameShape(QFrame.Box)
        self.qlbl.setObjectName("qlbl" + str(a))
        self.qlbl.resize(120, 20)
        self.lin.append(self.qlbl)
        self.qlbl.move(121, b)
        print(self.lin)
        print(a)
        print(b)
        print(self.qle.objectName())
app = QApplication(sys.argv)
mw=MyWork()
mw.window.show()
sys.exit(app.exec_())
PEHDOM
andrey_krsk
Почему не видно новых виджетов?
а вы указали что их нужно показать?
я чтото ничего подобного ниженаписаному у вас не вижу.
     def lineadd(self):
    ....
        self.qlbl.show()
        self.qle.show()
andrey_krsk
Спасибо, я почему-то думал, что window.show() достаточно.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB