Задать вопрос
  • Как сделать так, чтобы программа читала мой код?

    @Ledauph1
    Я только учусь, не пинайте строго.
    Вот ВАШ, исправленный рабочий код, но вообще такой код, очень плох... Начиная с импортов, и заканчивая отсутствием PEP8 !

    import tkinter as tk
    from tkinter import *
    import random as rd
    root = Tk()
    root.title('Buttons')
    root.geometry('800x600')
    root['bg'] = 'salmon'
    count = 0
    def clicked():
      global count
      count += 1
      print(count)
      set_config()
      lbl.configure(text = count)
    def destroy():
      btn.destroy()
    def destroy2():
      btn1.destroy()
    def newbtn():
      global btn1
      btn1 = Button(root, text = 'najmi', font = 'Roboto 35', bg = 'cyan', padx = '40', pady = '20', command = lambda: [destroy2(), newbtn(), clicked()])
      btn1.place(x = rd.randint(0,572), y = rd.randint(0,470))
    lbl = Label(root, text = '0', font = 'Arial 35', bg = 'salmon', fg = 'maroon')
    lbl.place(x = 0, y = 0)
    btn = Button(root, text = 'najmi', font = 'Roboto 35', bg = 'cyan', padx = '40', pady = '20', command = lambda: [destroy(), newbtn(), clicked()])
    btn.pack()
    
    def set_config():
        if count >= 10:
            # btn.configure(bg = 'coral1')
            root.configure(bg = 'purple')
            btn1.configure(bg = 'coral1')
    root.mainloop()
    Ответ написан
    Комментировать
  • Как узнать кол-во столбцов в списке python?

    @Ledauph1
    Я только учусь, не пинайте строго.
    Вопрос не совсем корректен...
    Если правильно понял, то:
    print(len(second))
    Ответ написан
    Комментировать
  • Словарь для брута rar архива возможно сделать через Блокнот?

    @Ledauph1
    Я только учусь, не пинайте строго.
    Вы создали словарь с 84 строками (значениями), то есть программа перебрала 84 значения с вашего словаря, не составляя комбинаций.
    Для создания словаря можно использовать программу Dictionary Generator Либо написать скрипт, который создаст список всевозможных комбинаций. Так же в некоторых программах для подбора пароля к архиву есть инструменты для создания словарей.
    Ответ написан
    1 комментарий
  • При сортировке строк в QTableWidget пропадают данные в некоторых столбцах, как исправить?

    @Ledauph1 Автор вопроса
    Я только учусь, не пинайте строго.
    Может кому то пригодится.
    Решение оказалось простое, в процессе заполнения таб. "subcategory", необходимо отключить сортировку таблицы.
    def fill_table_subcategory(self):
        self.subcategory.setRowCount(0)
    
        data_for_subcategory = self.get_selected_category()
        
        self.subcategory.setSortingEnabled(False) # <- вот этой строкой
    
        for row in enumerate(subcategory_data[data_for_subcategory]):
            self.subcategory.insertRow(row[0])
            for column in range(self.subcategory.columnCount()):
                self.subcategory.setItem(row[0], column, QTableWidgetItem(str(row[1][column])))
    
        self.subcategory.setSortingEnabled(True)


    За решение спасибо Alexander Chernin:

    Ответ написан
    Комментировать
  • Как сделать, так, чтобы в 1 строку выводились данные из переменных и дополнения к этим данным?

    @Ledauph1
    Я только учусь, не пинайте строго.
    a=323
    b=790
    c=342
    
    print('%s + %s + %s = %s' % (a, b, c, (a+b+c)))
    Ответ написан
    Комментировать
  • Как через кнопку открыть второе окно в PyQt5?

    @Ledauph1 Автор вопроса
    Я только учусь, не пинайте строго.
    Оказалась банально простая ошибка, в функции open_window забыл указать self!
    Было:
    def open_window(self):
            """ Открыть 2 окно """
            new_window = add_product_to_catalogue()
            new_window.show()

    Стало:
    def open_window(self):
            """ Открыть 2 окно """
            self.new_window = add_product_to_catalogue.Widget()
            self.new_window.show()

    PS Может кому-то пригодится)
    Ответ написан
    Комментировать
  • Как поместиь виджеты в фрейм (tkinter)?

    @Ledauph1 Автор вопроса
    Я только учусь, не пинайте строго.
    Нашел решение. Необходимо использовать упаковщик "отдельно" от создания виджета который необходимо поместить в фрейм.
    не правильно:
    f1 = Frame(root, width=400, height=100, bg="red").pack()

    правильно:
    f1 = Frame(root, width=400, height=100, bg="red")
    f1..pack()

    для запрета изменения размера фрейма:
    f1.propagate(False)

    В целом, код будет выглядеть так:
    from tkinter import *
    
    root = Tk()
    root.geometry('500x600')
    
    f1 = Frame(root, width=400, height=100, bg="red")
    f1.pack()
    f1.propagate(False)
    f2 = Frame(root, width=400, height=100, bg="black")
    f2.pack()
    f2.propagate(False)
    f3 = Frame(root, width=400, height=100, bg="yellow")
    f3.pack()
    f3.propagate(False)
    
    b1 = Button(f1, text ='кнопка для фрейма №1', bg ='pink').pack()
    b2 = Button(f2, text ='кнопка для фрейма №2', bg ='blue').pack()
    b3 = Button(f3, text ='кнопка для фрейма №3', bg ='silver').pack()
    
    root.mainloop()

    Результат
    606776be275ca194890942.jpeg


    Собствено, то что и сказал(а) kamenyuga
    В приведенном коде f1 - это результат вызова метода pack(), который НЕ возвращает ссылку на фрэйм, а возвращает None. Это базовый синтаксис питона, переменной присваивается результат вызова функции.

    Спасибо, не сразу понял суть(
    Ответ написан
    Комментировать