Я принял к сведению вариант truporez.
Скажите чем плох мой вариант! укажите правильный стиль.
Интересует именно использование глобальных переменных, есть ли минусы
#!/usr/bin/python
# pyarchnetcgf.py
import sys
from PyQt4 import QtGui, QtCore
class GridNetCgf(QtGui.QWidget):
def __init__(self, parent=None):
QtGui.QWidget.__init__(self, parent)
self.setWindowTitle("Сетевые настройки")
"""global переменные"""
global radioStatic
global radioAuto
global ipEdit
global maskEdit
global gatewayEdit
global dns1Edit
global dns2Edit
global dns3Edit
global save
global cancel
"""Радио кнопки Статически и Автоматически"""
radioStatic = QtGui.QRadioButton("Статически")
radioAuto = QtGui.QRadioButton("Автоматически")
"""Метки"""
ip = QtGui.QLabel("IP-адрес")
mask = QtGui.QLabel("Маска")
gateway = QtGui.QLabel("Шлюз")
dns1 = QtGui.QLabel("DNS1")
dns2 = QtGui.QLabel("DNS2")
dns3 = QtGui.QLabel("DNS3")
mac = QtGui.QLabel("MAC-адрес")
"""Подсказки для меток"""
ip.setToolTip("IP-адрес - уникальный сетевой адрес узла (компьютера) в компьютернойсети.\nЕго можно узнать у вашего провайдера или системного администратора.")
mask.setToolTip("Маска подсети - битовая маска, определяющая, какая часть IP-адреса \nузла сети относится к сети, а какая - к адресу узла в этой сети.")
gateway.setToolTip("Сетевой шлюз - предоставляет доступ в локальную сеть или интернет")
dns1.setToolTip("Сервер предоставляющий IP-адрес хоста по его имени")
dns2.setToolTip("Сервер предоставляющий IP-адрес хоста по его имени")
dns3.setToolTip("Сервер предоставляющий IP-адрес хоста по его имени")
"""Поля для правки адресов"""
ipEdit = QtGui.QLineEdit()
maskEdit = QtGui.QLineEdit()
gatewayEdit = QtGui.QLineEdit()
dns1Edit = QtGui.QLineEdit()
dns2Edit = QtGui.QLineEdit()
dns3Edit = QtGui.QLineEdit()
macAddress = QtGui.QLineEdit("123.123.123.123")
macAddress.setDisabled(True)
"""Кнопки сохранить и отмена"""
save = QtGui.QPushButton("Сохранить")
cancel = QtGui.QPushButton("Отмена")
"""Расстановка элементов по сетки"""
hboxRadio = QtGui.QHBoxLayout()
hboxRadio.addWidget(radioStatic)
hboxRadio.addWidget(radioAuto)
grid = QtGui.QGridLayout()
grid.setSpacing(5)
grid.addWidget(ip, 1, 0)
grid.addWidget(ipEdit, 1, 1)
grid.addWidget(mask, 2, 0)
grid.addWidget(maskEdit, 2, 1)
grid.addWidget(gateway, 3, 0)
grid.addWidget(gatewayEdit, 3, 1)
grid.addWidget(dns1, 4, 0)
grid.addWidget(dns1Edit, 4, 1)
grid.addWidget(dns2, 5, 0)
grid.addWidget(dns2Edit, 5, 1)
grid.addWidget(dns3, 6, 0)
grid.addWidget(dns3Edit, 6, 1)
grid.addWidget(mac, 7, 0)
grid.addWidget(macAddress, 7, 1)
hboxButton = QtGui.QHBoxLayout()
hboxButton.addStretch(1)
hboxButton.addWidget(save)
hboxButton.addWidget(cancel)
vbox = QtGui.QVBoxLayout()
vbox.addLayout(hboxRadio)
vbox.addLayout(grid)
vbox.addLayout(hboxButton)
"""Геометрия окна"""
self.setLayout(vbox)
self.setGeometry(300,300,0, 0)
"""Сигналы и слоты"""
self.connect(cancel, QtCore.SIGNAL('clicked()'), QtGui.qApp, QtCore.SLOT('quit()'))
self.connect(radioAuto, QtCore.SIGNAL('toggled(bool)'), self.disableAll)
self.connect(radioStatic, QtCore.SIGNAL('toggled(bool)'), self.enableAll)
"""Сделать элементы не активными"""
def disableAll(self):
ipEdit.setDisabled(True)
maskEdit.setDisabled(True)
gatewayEdit.setDisabled(True)
dns1Edit.setDisabled(True)
dns2Edit.setDisabled(True)
dns3Edit.setDisabled(True)
"""Сделать элементы активными"""
def enableAll(self):
ipEdit.setDisabled(False)
maskEdit.setDisabled(False)
gatewayEdit.setDisabled(False)
dns1Edit.setDisabled(False)
dns2Edit.setDisabled(False)
dns3Edit.setDisabled(False)
app = QtGui.QApplication(sys.argv)
qb = GridNetCgf()
qb.show()
sys.exit(app.exec_())