Форум сайта python.su
Всем привет!
Py 2.7, PyQT4
У меня есть модальное окно, в котором подгружаются глобальные переменные, которые нужно изменить:
class MyModalWinconfig(QtGui.QWidget): def __init__(self,parent, flag, *args, **kwargs): QtGui.QWidget.__init__(self, parent, flag, *args, **kwargs) self.setWindowFlags(flag|QtCore.Qt.CustomizeWindowHint|QtCore.Qt.WindowTitleHint|QtCore.Qt.FramelessWindowHint|QtCore.Qt.WindowCloseButtonHint) self.setWindowModality(QtCore.Qt.WindowModal) layout = QtGui.QVBoxLayout(self) #layout.setAlignment(QtCore.Qt.AlignCenter) self.setLayout(layout) global var_Tmin, var_Tmax
self.label_Tmin = QtGui.QLabel(u'T', self)
self.label_Tmin.setGeometry(0, 0, 30, 10)
self.label_Tmin.setStyleSheet(QString("font-size: %2px").arg(14))
self.label_Tmin.setText(u'T: '+str(var_Tmin))
layout.addWidget(self.label_Tmin)
self.button1 = QtGui.QPushButton(u"+", clicked=self.plus)
self.button1.setGeometry(10, 10, 80, 20)
layout.addWidget(self.button1)
self.button2 = QtGui.QPushButton(u"-", clicked=self.minus)
self.button2.setGeometry(10, 10, 80, 20)
layout.addWidget(self.button2)
Офлайн
lefmailsНе очень понятно что у вас не получается.
однако ни как не получается расставить все ровно (делается сверху вниз)
Отредактировано doza_and (Май 15, 2019 09:27:02)
Офлайн
Контролы выравнить получилось
self.label_inf_Tmin = QtGui.QLabel(u'asd', self) self.label_inf_Tmin.setGeometry(0, 0, 30, 10) self.label_inf_Tmin.setStyleSheet(QString("font-size: %2px").arg(14)) self.label_inf_Tmin.setText(u'Tмин: '+str(var_Tmin)) layout.addWidget(self.label_inf_Tmin,1,1) self.button1 = QtGui.QPushButton(u"-", clicked=self.set_T_min_minus) self.button1.setGeometry(0, 10, 80, 20) self.button1.show layout.addWidget(self.button1,1,2) self.button2 = QtGui.QPushButton(u"+", clicked=self.set_T_min_plus) self.button2.setGeometry(10, 10, 80, 20) layout.addWidget(self.button2,1,3) self.button3 = QtGui.QPushButton(u"Выход", self) self.button3.clicked.connect(self.deleteLater) self.button3.setGeometry(10, 40, 80, 20) layout.addWidget(self.button3,3,4) def set_T_min_plus(self, comand): global var_Tmin var_Tmin=var_Tmin+1 self.deleteLater def set_T_min_minus(self, comand): global var_Tmin var_Tmin=var_Tmin-1 self.deleteLater
Офлайн
lefmailsТак что именно делать?
Но для этого придется для каждой переменной делать.
Отредактировано doza_and (Май 15, 2019 09:39:50)
Офлайн
У меня есть несколько переменных, которые отображаются в модальном окне.
При выборе переменной (мышкой или на кнопку изменить) выходит окно в котором значение переменной изменяется и сохраняется.
Вот, что пытаюсь сделать
Офлайн
doza_and
Список глобальных переменных он хочет получить и построить на основании этого списка набор контролов, которые будут изменять переменные.
lefmails
Не могу сдержаться, извините.
Ху…ню вы пытаетесь сделать, дорогой товарищ.
Никогда не используйте неконстантные глобальные переменные без острой на то необходимости (а её у вас нет, я гарантирую)
процитирую товарища со стековерфло (ссылка не работает)
Глобальные переменные в большинстве случаев нарушают инкапсуляцию. К ним открыт неконтролируемый доступ отовсюду.
В большом проекте при обилии глобальных переменных возникает путаница в именах. Глобальную переменную же видно отовсюду, надо, чтобы отовсюду было понятно, зачем она.
Глобальные переменные в большинстве случаев нарушают принцип инверсии зависимостей (или делают возможным его нарушение).
Глобальные переменные ухудшают масштабируемость проекта.
Глобальные переменные ухудшают читаемость кода (в каком-то конкретно взятом месте непонятно, нужна ли какая-то конкретная глобальная переменная, или нет).
Глобальные переменные приводят к трудноуловимым ошибкам. Примеры: нежелательное изменение её значения в другом месте/другим потоком, ошибочное использование глобальной переменной для промежуточных вычислений из-за совпадения имен, возвращение функцией неправильного значения при тех же параметрах (оказывается, она зависима от глобальной переменной, а ее кто-то поменял).
Глобальные переменные создают большие сложности при использовании модульного тестирования.
Глобальные переменные увеличивают число прямых и косвенных связей в системе, делая её поведение труднопредсказуемым, а её саму - сложной для понимания и развития.
Отредактировано FishHook (Май 15, 2019 10:13:45)
Офлайн
Прошу подсказать про кнопку и передачи в нее функции
btn_arh.clicked.connect(self.show_modal_save_var('22')) def show_modal_save_var(self,vare): window3 = MyModalWinsave_var(self, QtCore.Qt.Dialog) window3.setWindowTitle(u"Изменение переменной") window3.setGeometry(0, 0, 480, 272) window3.set_text(u'Переменная') window3.set_locvars(u'Tmin:'+str(vare)) window3.show()
Офлайн
lefmails
найдите в интернете и внимательно прочитайте, что такое callback. Зачем нужен, как используется. Потом рекомендую крепко подумать, что вообще делает метод connect, а после совместить полученные знания.
Офлайн
Спасибо, сделал в таком формате:
Кнопка вызывает функцию через коннект, а в этой функции вызывается с передающим параметром.
как уж получилось, главное работает)))
Офлайн