Форум программистов, компьютерный форум, киберфорум
Python: GUI, графика
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
32 / 28 / 5
Регистрация: 02.08.2020
Сообщений: 132
Записей в блоге: 1

Косяк с размерами scrollbar

02.08.2020, 20:46. Показов 477. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Собственно говоря есть код
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
#! /usr/bin/python
file='dbm'
import dbm
db=dbm.open(file,'w')
class Dragdrop():
    def add_dragable(self, widget):
        widget.bind("<ButtonPress-1>", self.on_start)
        widget.bind("<B1-Motion>", self.on_drag)
        widget.bind("<ButtonRelease-1>", self.on_drop)
        widget.configure(cursor="hand1")
 
    def on_start(self, event):
        # you could use this method to create a floating window
        # that represents what is being dragged.
        pass
 
    def on_drag(self, event):
        # you could use this method to move a floating window that
        # represents what you're dragging
        pass
 
    def on_drop(self, event):
        # find the widget under the cursor
        x,y = event.widget.winfo_pointerxy()
        target = event.widget.winfo_containing(x,y)
        try:
            target.configure(image=event.widget.cget("image"))
        except:
            pass
 
from tkinter import *
data = '''#define image_width 15
#define image_height 15
static unsigned char image_bits[] = {
   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x1c, 0x30, 0x0c, 0x60, 0x06,
   0x60, 0x06, 0xc0, 0x03, 0xc0, 0x03, 0x60, 0x06, 0x60, 0x06, 0x30, 0x0c,
   0x38, 0x1c, 0x00, 0x00, 0x00, 0x00 };'''
def takt(*a,**b):
    print('takt',a,b)
def on_configure(event):
    canvasscrl.configure(scrollregion=canvasscrl.bbox('all'))
 
win = Tk()
win.title('window')
win.overrideredirect(False)
win.iconify()
win.withdraw()
win.deiconify()
win.minsize(width=200, height=100)
win.state()
win.resizable()
 
 
menubar = Menu(win)
filemenu = Menu(menubar, tearoff=0)
filemenu.add_command(label="New", command=takt)
filemenu.add_separator()
menubar.add_cascade(label="File", menu=filemenu)
win.config(menu=menubar)
 
 
ff=Frame(win)
canvasscrl = Canvas(ff)
scrollbar = Scrollbar(ff, command=canvasscrl.yview)
canvasscrl.configure(yscrollcommand = scrollbar.set)
canvasscrl.bind('<Configure>', on_configure)
frame = Frame(canvasscrl)
canvasscrl.create_window((0,0), window=frame, anchor='nw')
 
class row():
    num=0
    def __init__(self,name):
        self.num=row.num
        self.name=name
        self.value=StringVar()
        self.value.set(db[name])
 
        self.label=Label(frame,text=self.name)
        self.label.grid(row=self.num,column=0)
        self.label.bind('<ButtonPress-1>',self.delete)
        self.entry=Entry(frame,textvar=self.value)
        self.entry.grid(row=self.num,column=1)
        self.entry.bind('<Return>',self.edit)
 
        row.num+=1
    def edit(self,ignore):
        db[self.name]=self.value.get()
    def delete(self,ignore):
        del db[self.name]
        self.label.destroy()
        self.entry.destroy()
        
newname=StringVar()
newvalue=StringVar()
def addnew(ignore):
    if newname.get()=='' or newvalue.get()=='':
        return
    db[newname.get()]=newvalue.get()
    row(newname.get())
    canvasscrl.configure(scrollregion=canvasscrl.bbox("all"))
    canvasscrl.yview_moveto(1)
 
 
 
for name in db:
    r=row(name)
 
f=Frame(win)
a=Entry(f,textvar=newname)
a.bind('<Return>',addnew)
b=Entry(f,textvar=newvalue)
b.bind('<Return>',addnew)
Label(f,text='New name:').pack(side=LEFT)
a.pack(side=LEFT)
Label(f,text='New value').pack(side=LEFT)
b.pack(side=LEFT)
f.pack()
ff.pack()
scrollbar.pack(side=RIGHT, fill='y')
canvasscrl.pack()
 
win.mainloop()
#image canvas menu event scrollbar
Игнорируя мусор, обращаем внимание на функцию addnew, которая как бы должна добавить новые элементы в скроллфрейм и прокрутить его, но только вот это всё добавляется и прокручивается с задержкой на одну строку.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
02.08.2020, 20:46
Ответы с готовыми решениями:

Найти файлы с наибольшим и наименьшим размерами. Получить разность между соответствующими размерами
Найти файлы с наибольшим и наименьшим размерами. Получить разность между соответствующими размерами. Фаил с наибольшим и наименьшим...

Можно ли прямоугольный пакет размерами A,B,C положить в чемодан размерами X,Y,Z?
Помогите решить пару задач. 1. Можно ли прямоугольный пакет размерами A,B,C положить в чемодан размерами X,Y,Z? Как сказал...

Изменять значение ScrollBar, изменяя значение другого ScrollBar
Подскажите пож-та как взаимосвзять scrollbar'ы в basic 6, что бы при увеличение значения на одном скроле, на втором оно уменьшалось?

2
 Аватар для kapbepucm
1568 / 741 / 321
Регистрация: 02.05.2020
Сообщений: 1,660
04.08.2020, 10:30
Цитата Сообщение от Userganz Посмотреть сообщение
Игнорируя мусор
Можете вырезать всё лишнее, оставив минимальный рабочий пример, воспроизводящий проблему?
0
32 / 28 / 5
Регистрация: 02.08.2020
Сообщений: 132
Записей в блоге: 1
05.08.2020, 00:05  [ТС]
kapbepucm, вот
Python
1
2
3
row(newname.get())
canvasscrl.configure(scrollregion=canvasscrl.bbox("all"))
canvasscrl.yview_moveto(1)
где row класс добавляющий элементы во фрейм типа label,entry

Добавлено через 3 часа 16 минут
Всем спс решение:
1) был не верный bind т.е. был бинд с канвасом, нужен с последним фреймом
2) перед автоскролом те canvas.yview_moveto(1) нужно вызывать canvas.update()
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
05.08.2020, 00:05
Помогаю со студенческими работами здесь

StringGrid2>ScrollBar>Poistion = StringGrid1>ScrollBar>Poistion
Здрасте :) Нигде не могу отрыть (или мозги уже не варят%-)) - как получить позицию ScrollBar`a мне нужно чтоб ScrollBar у...

косяк
помогите пожалуйста нарисовать косяк вместо корабля (методом polygon) вот для этой проги

Косяк 1С 7.7
Добрыйдень! 21-25 релизы. Псоледний раз работал с внешним отчетом, открытым с ноутбука по сети. Ноут выключен, при попытке открыть...

Косяк: w != w || m != m
Здравствуйте! Какой-то детский косяк у меня :) Отправляем (кусок формы) &lt;div class=&quot;form-group&quot;&gt; ...

где косяк
есть код который посылает запрос на поиск на сайт drom.ru #coding: utf-8 import urllib2 # Импортируем библиотеку urllib2 import...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20% kYBz3eJf3jQ
Дальние перспективы сервера - слоя сети с космологическим дизайном интефейса карты и логики.
Hrethgir 07.04.2026
Дальнейшее ближайшее планирование вывело к размышлениям над дальними перспективами. И вот тут может быть даже будут нужны оценки специалистов, так как в дальних перспективах всё может очень сильно. . .
Горе от ума
kumehtar 07.04.2026
Эта мне ментальная установка, что вот прямо сейчас, мол, мне для полного счастья не хватает (нужное вписать), и когда я этого достигну - тогда и полный кайф. Одна из самых сильных ловушек на пути. . . .
Использование значений реквизитов справочника в документе, с определенными условиями и правами
Maks 07.04.2026
1. Контроль срока действия договора Алгоритм из решения ниже реализован на примере нетипового документа "ЗаявкаНаРаботу", разработанного в конфигурации КА2. Задача: уведомлять пользователя, если. . .
Доступность команды формы по условию
Maks 07.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: сделать доступной кнопку (команда формы "ЗавершитьСписание") при. . .
Уведомление о неверно выбранном значении справочника
Maks 06.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "НарядПутевка", разработанного в конфигурации КА2. Задача: уведомлять пользователя, если в документе выбран неверный склад. . .
Установка Qt Creator для C и C++: ставим среду, CMake и MinGW без фреймворка Qt
8Observer8 05.04.2026
Среду разработки Qt Creator можно установить без фреймворка Qt. Есть отдельный репозиторий для этой среды: https:/ / github. com/ qt-creator/ qt-creator, где можно скачать установщик, на вкладке Releases:. . .
AkelPad-скрипты, структуры, и немного лирики..
testuser2 05.04.2026
Такая программа, как AkelPad существует уже давно, и также давно существуют скрипты под нее. Тем не менее, прога живет, периодически что-то не спеша дополняется, улучшается. Что меня в первую очередь. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru