Форум программистов, компьютерный форум, киберфорум
Python: Tkinter
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/9: Рейтинг темы: голосов - 9, средняя оценка - 4.67
0 / 0 / 0
Регистрация: 18.11.2020
Сообщений: 153

Работа с таблицей

03.06.2021, 20:13. Показов 1869. Ответов 1

Студворк — интернет-сервис помощи студентам
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
from tkinter import *
from tkinter import messagebox as mb
import modul_1
from tkinter import filedialog as fd
 
def add_window():
    def add():
        name = en1.get()
        num = en2.get()
        time = en3.get()
 
        trains.add(name, num, time)
 
    add_w = Toplevel()
    add_w.title('Добавить')
    add_w.resizable(False, False)
    add_w.geometry('400x200')
    en1 = Entry(add_w)
    en2 = Entry(add_w)
    en3 = Entry(add_w)
    lb1 = Label(add_w, text="Пункт назначения")
    lb2 = Label(add_w, text="Номер поезда")
    lb3 = Label(add_w, text="Время отправления")
    bt1 = Button(add_w, text="Добавить", command=add)
 
    lb1.grid(row=0, column=0)
    lb2.grid(row=1, column=0)
    lb3.grid(row=2, column=0)
    en1.grid(row=0, column=1)
    en2.grid(row=1, column=1)
    en3.grid(row=2, column=1)
    bt1.grid(row=4, column=0, columnspan=2)
 
 
def extract_text():
    file_name = fd.asksaveasfilename()
    try:
        f = open(file_name, 'w')
    except (FileNotFoundError, TypeError):
        mb.showinfo("Ошибка","Файл не сохранен!")
    else:
        s = text.get(1.0, END)
        f.write(s)
        f.close()
 
def select_window():
    def choice():
        try:
            choice_en = int(en4.get())
            res = trains.select(choice_en)
            if res:
                for idx, name in enumerate(res, 1):
                    text.delete(0.0, END)
                    text.insert(0.0, '{:>4}: {}'.format(idx, modul_1.train.name))
            else:
                text.delete(0.0, END)
                text.insert(0.0, 'Такого пункта отправления нет')
        except():
            mb.showinfo("Выбор пункта",
                        "Введите пункт отправления!")
    sel_w = Toplevel()
    sel_w.title('Выбрать')
    sel_w.resizable(False, False)
    sel_w.geometry('225x100')
    lb4 = Label(sel_w, text="Введите пункт отправления поезда")
    en4 = Entry(sel_w)
    bt3 = Button(sel_w, text="Подтвердить", command=choice)
    lb4.pack(padx=2, pady=2)
    en4.pack(padx=2, pady=2)
    bt3.pack(padx=2, pady=2)
 
def insert_text():
    file_name = fd.askopenfilename()
    try:
        f = open(file_name)
    except(FileNotFoundError, TypeError):
        mb.showinfo("Открытие файла",
                    "Файл не выбран!")
    else:
        s = f.read()
        text.insert(1.0, s)
        f.close()
 
 
def help_window():
    help_w = Toplevel()
    help_w.title('Помощь')
    help_w.resizable(False, False)
    help_w['bg'] = 'white'
    img = PhotoImage(file='Справка.png')
    bt2 = Button(
        help_w,
        image=img,
        bg='white',
        borderwidth=0,
        activebackground='white',
        command=lambda: help_w.destroy()
    )
    bt2.image = img
    bt2.pack()
 
def show():
    text.delete(0.0, END)
    text.insert(0.0, trains)
 
 
if __name__ == '__main__':
    trains = modul_1.Staff()
 
 
    root = Tk()
    root.geometry('800x450')
    root.title('Расписание поездов')
    root.resizable(False, False)
 
    main_menu = Menu(root)
    root.config(menu=main_menu)
 
    file_menu = Menu(main_menu, tearoff=0)
    file_menu.add_command(label="Открыть", command=insert_text)
    file_menu.add_command(label="Добавить", command=add_window)
    file_menu.add_command(label="Сохранить", command=extract_text)
    main_menu.add_cascade(label="Файл", menu=file_menu)
    main_menu.add_command(label="Выбрать", command=select_window)
    main_menu.add_command(label="Показать", command=show)
    main_menu.add_command(label="Помощь", command=help_window)
    main_menu.add_command(label="Выход", command=lambda: root.destroy())
 
    text = Text(bg='white', width=100, height=100)
    text.pack(side=LEFT)
    scroll = Scrollbar(command=text.yview)
    scroll.pack(side=LEFT, fill=Y)
    text.config(yscrollcommand=scroll.set)
 
    root.mainloop()
как сделать так,чтобы таблица получаемая при выводе не изменялась,чтобы ничего нельзя было с ней сделать?
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
03.06.2021, 20:13
Ответы с готовыми решениями:

Работа с таблицей MSSQL в WxPython
Всем привет. Мне необходимо сделать GUI-интерфейс с возможностью просмотра/редактирования таблицы MSSQL. Подскажите, в каком направлении...

Составить программу, в которой будет реализована работа с таблицей по варианту. Для работы пользователя с таблицей будет
Добрый день. Есть такое задание: Составить программу, в которой будет реализована работа с таблицей по варианту. Для работы пользователя...

Работа с таблицей
Добрый день! Имеется таблица из какого-то нормативного документа - СП, ГОСТ и так далее. Общий вид упрощенно: Необходимо,...

1
262 / 151 / 33
Регистрация: 29.06.2019
Сообщений: 1,515
04.06.2021, 14:34
Цитата Сообщение от Tvimexer Посмотреть сообщение
Entry
переделать все widget Entry на widget Label
пример
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
#-------------------------------------------------------------------------------
# Author:  https://************/questions/225357/creating-a-table-look-a-like-tkinter
#-------------------------------------------------------------------------------
 
# simple 2d table
 
import tkinter as tk
 
class ExampleApp(tk.Tk):
    def __init__(self):
        tk.Tk.__init__(self)
        t = SimpleTable(self, 10,2)
        t.pack(side="top", fill="x")
        t.set(0,0,"Hello, world")
 
class SimpleTable(tk.Frame):
    def __init__(self, parent, rows=10, columns=2):
        # use black background so it "peeks through" to
        # form grid lines
        tk.Frame.__init__(self, parent, background="black")
        self._widgets = []
        for row in range(rows):
            current_row = []
            for column in range(columns):
                label = tk.Label(self, text="%s/%s" % (row, column),
                                 borderwidth=0, width=10)
                label.grid(row=row, column=column, sticky="nsew", padx=1, pady=1)
                current_row.append(label)
            self._widgets.append(current_row)
 
        for column in range(columns):
            self.grid_columnconfigure(column, weight=1)
 
 
    def set(self, row, column, value):
        widget = self._widgets[row][column]
        widget.configure(text=value)
 
if __name__ == "__main__":
    app = ExampleApp()
    app.mainloop()
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
04.06.2021, 14:34
Помогаю со студенческими работами здесь

работа с таблицей
Как страницу с таблицей заключать в рамку-рисунок? Добавлено через 32 минуты Как поместить картинку или диаграмму в кадр? Как...

Работа с таблицей
как заполнить 1ую строчку нулями,но так же сдвинуть все значения на 1 вниз,чтобы не потерялись значения вот код заполнения begin ...

Работа с таблицей
Здравствуйте, помогите с кодом Я сделал таблицу у которой в источниках указана уже готовая таблица с базы данных, мне нужно...

Работа с таблицей в QT
Есть задача: надо заполнить несколько таблиц типа QTableWidget с именами типа Reg_1, Reg_2...Reg_N данными из структур, которые нумеруются...

Работа с таблицей
Теперь позвольте второй вопрос. Есть такая "таблица": Наименование Местонахождение Вид зарегистрированного лица Доля в УК, % ЗАО...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь(не выше 3-го порядка) постоянного тока с элементами R, L, C, k(ключ), U, E, J. Программа находит переходные токи и напряжения на элементах схемы классическим методом(1 и 2 з-ны. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru