#python #linux #terminal #gtk
#python #linux #терминал #gtk
Вопрос:
В моей программе у меня есть одно из тех раздражающих всплывающих окон, которое предупреждает пользователя о необходимости проверить настройки. У меня есть флажок, который, если он установлен, должен никогда больше не показывать всплывающее окно. Я понятия не имею, как это сделать. Когда флажок установлен, мне нужно, чтобы программа записывала в текстовый файл с именем tog_file.txt говоря «верно». И если текст в tog_file.txt если это правда, всплывающее окно больше никогда не будет отображаться. Код:
def reminder():
global tog
tog = open("tog_file.txt", "r b")
tog_r = tog.read()
if tog_r == "true":
print "true"
if tog_r == "":
global reminder
reminder = gtk.Window(gtk.WINDOW_TOPLEVEL)
reminder.set_position(gtk.WIN_POS_CENTER)
reminder.set_size_request(450, 205)
reminder.set_title("Info")
textbox = gtk.Label("Remember To Go Into The Settings Menu! There are Important Settings that Need to be Reviewed by you!")
textbox.set_justify(gtk.JUSTIFY_CENTER)
textbox.set_line_wrap(True)
button = gtk.Button("Close")
button.connect("clicked", reminder_close)
toggle = gtk.CheckButton("Don't Show This Message Again")
item_text = toggle.get_active()
if item_text == False:
print "no"
if item_text == True:
print "yea"
tog.write("true")
fixed = gtk.Fixed()
fixed.put(button, 300, 160)
fixed.put(toggle, 50, 165)
fixed.put(textbox, 50, 50)
reminder.add(fixed)
reminder.show_all()
def reminder_close(self):
reminder.destroy()
Если вам нужна дополнительная информация, просто оставьте комментарий.
Спасибо StackOverflow 🙂
Комментарии:
1. если os.path.exists(‘file-path’): с open(‘file-path’,’r’) как f: если f.read() == ‘true’: пропустить всплывающее окно else: показать всплывающее окно
2. @cox не могли бы вы опубликовать ответ вместо комментария, чтобы я мог сказать, что вы ответили на вопрос, и поэтому я могу понять ваш ответ, пожалуйста
3. @cox это даже близко не то, что я ищу. Мне нужно иметь возможность указывать, когда писать «true» в файле с помощью toggle.get_active()
Ответ №1:
Я думаю, вам нужен метод get_active() . Проверьте, есть ли button.get_active() => boolean и действуйте соответственно. Вы также можете подключить радио bt к сигналу ‘toggle’ и в функции on_toggle установить переменную класса с состоянием bt: if bt.get_active():self.ischeck=True
или сокращенным способом:
else:self.ischeck = False self.ischeck = True if bt.get_active() else False