Форум сайта python.su
С новым годом всех!
Если сделать:
hbox = QHBoxLayout() hbox.addStretch(1)
button1 = QPushButton('') button2 = QPushButton('') ... button10 = QPushButton('')
for i in range(1,10): Peremennaya_iz_stroki("button"+str(i) ) = QPushButton('')
Отредактировано nikk (Дек. 29, 2017 13:28:31)
Офлайн
nikkhttp://python.su/forum/topic/32446/
И второй вопрос - мне нужно создать штук десять однотипных кнопок, отличающихся только иконками. Вопрос, как им динамически имена объектов генерировать? То есть не руками писать:
[code python][/code]
Отредактировано PEHDOM (Дек. 29, 2017 20:21:26)
Офлайн
nikkкроме QSplitter сходу ничего на ум не идет. у лэйаута задача как раз расставить элементы без перекрытий
Можно это как-то сделать стандартными средствами компоновки PyQT5? Или только руками в нужные координаты расставлять кнопки?
from PyQt5.Qt import *
app = QApplication([])
split = QSplitter()
btn1 = QPushButton('1')
btn2 = QPushButton('2')
btn3 = QPushButton('3')
split.addWidget(btn1)
split.addWidget(btn2)
split.addWidget(btn3)
split.show()
app.exec_()
from PyQt5.Qt import * app = QApplication([]) w = QWidget() btn1 = QPushButton('1',w) btn2 = QPushButton('2',w) btn3 = QPushButton('3',w) btn2.move(30,0) btn3.move(60,0) w.show() app.exec_()
Отредактировано vic57 (Дек. 29, 2017 21:06:42)
Офлайн
> Нужно сделать несколько наезжающих друг на друга, частично друг друга перекрывающих кнопок. Можно это как-то сделать стандартными средствами компоновки PyQT5?
Можно. Но вот только зачем?
import sys from PyQt4 import QtCore, QtGui class Ui_Form(QtGui.QDialog): def __init__(self): QtGui.QDialog.__init__(self, parent=None) self.gridLayout = QtGui.QGridLayout(self) self.pushButton = QtGui.QPushButton(self) self.gridLayout.addWidget(self.pushButton, 0, 0, 1, 3) self.pushButton_2 = QtGui.QPushButton(self) self.gridLayout.addWidget(self.pushButton_2, 0, 2, 1, 3) if __name__ == "__main__": app = QtGui.QApplication(sys.argv) win = Ui_Form() win.show() sys.exit(app.exec_())
Отредактировано Rodegast (Дек. 29, 2017 22:13:08)
Офлайн
там для лайнедитов, но смысл один и тотже. можно в списки помещать.
Офлайн