8000 [3.7] bpo-33987: IDLE - use ttk Frame for ttk widgets (GH-11395) by miss-islington · Pull Request #11419 · python/cpython · GitHub
[go: up one dir, main page]

Skip to content

[3.7] bpo-33987: IDLE - use ttk Frame for ttk widgets (GH-11395) #11419

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 1 commit into from
Jan 3, 2019
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion Lib/idlelib/autocomplete_w.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
import platform

from tkinter import *
from tkinter.ttk import Scrollbar
from tkinter.ttk import Frame, Scrollbar

from idlelib.autocomplete import COMPLETE_FILES, COMPLETE_ATTRIBUTES
from idlelib.multicall import MC_SHIFT
Expand Down
2 changes: 1 addition & 1 deletion Lib/idlelib/config_key.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
Dialog for building Tkinter accelerator key bindings
"""
from tkinter import Toplevel, Listbox, Text, StringVar, TclError
from tkinter.ttk import Button, Checkbutton, Entry, Frame, Label, Scrollbar
from tkinter.ttk import Frame, Button, Checkbutton, Entry, Label, Scrollbar
from tkinter import messagebox
import string
import sys
Expand Down
2 changes: 1 addition & 1 deletion Lib/idlelib/configdialog.py
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@
TOP, BOTTOM, RIGHT, LEFT, SOLID, GROOVE,
NONE, BOTH, X, Y, W, E, EW, NS, NSEW, NW,
HORIZONTAL, VERTICAL, ANCHOR, ACTIVE, END)
from tkinter.ttk import (Button, Checkbutton, Entry, Frame, Label, LabelFrame,
from tkinter.ttk import (Frame, LabelFrame, Button, Checkbutton, Entry, Label,
OptionMenu, Notebook, Radiobutton, Scrollbar, Style)
import tkinter.colorchooser as tkColorChooser
import tkinter.font as tkFont
Expand Down
2 changes: 1 addition & 1 deletion Lib/idlelib/debugger.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
import os

from tkinter import *
from tkinter.ttk import Scrollbar
from tkinter.ttk import Frame, Scrollbar

from idlelib import macosx
from idlelib.scrolledlist import ScrolledList
Expand Down
11 changes: 7 additions & 4 deletions Lib/idlelib/grep.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
import sys

from tkinter import StringVar, BooleanVar
from tkinter.ttk import Checkbutton
from tkinter.ttk import Checkbutton # Frame imported in ...Base

from idlelib.searchbase import SearchDialogBase
from idlelib import searchengine
Expand Down Expand Up @@ -173,23 +173,26 @@ def findfiles(self, dir, base, rec):

def _grep_dialog(parent): # htest #
from tkinter import Toplevel, Text, SEL, END
from tkinter.ttk import Button
from tkinter.ttk import Frame, Button
from idlelib.pyshell import PyShellFileList

top = Toplevel(parent)
top.title("Test GrepDialog")
x, y = map(int, parent.geometry().split('+')[1:])
top.geometry(f"+{x}+{y + 175}")

flist = PyShellFileList(top)
text = Text(top, height=5)
frame = Frame(top)
frame.pack()
text = Text(frame, height=5)
text.pack()

def show_grep_dialog():
text.tag_add(SEL, "1.0", END)
grep(text, flist=flist)
text.tag_remove(SEL, "1.0", END)

button = Button(top, text="Show GrepDialog", command=show_grep_dialog)
button = Button(frame, text="Show GrepDialog", command=show_grep_dialog)
button.pack()

if __name__ == "__main__":
Expand Down
8 changes: 5 additions & 3 deletions Lib/idlelib/idle_test/test_searchbase.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,8 @@

import unittest
from test.support import requires
from tkinter import Tk, Frame ##, BooleanVar, StringVar
from tkinter import Tk
from tkinter.ttk import Frame
from idlelib import searchengine as se
from idlelib import searchbase as sdb
from idlelib.idle_test.mock_idle import Func
Expand Down Expand Up @@ -97,11 +98,12 @@ def test_make_frame(self):
self.dialog.top = self.root
frame, label = self.dialog.make_frame()
self.assertEqual(label, '')
self.assertIsInstance(frame, Frame)
self.assertEqual(str(type(frame)), "<class 'tkinter.ttk.Frame'>")
# self.assertIsInstance(frame, Frame) fails when test is run by
# test_idle not run from IDLE editor. See issue 33987 PR.

frame, label = self.dialog.make_frame('testlabel')
self.assertEqual(label['text'], 'testlabel')
self.assertIsInstance(frame, Frame)

def btn_test_setup(self, meth):
self.dialog.top = self.root
Expand Down
1 change: 0 additions & 1 deletion Lib/idlelib/query.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
"""
Dialogs that query users and verify the answer before accepting.
Use ttk widgets, limiting use to tcl/tk 8.5+, as in IDLE 3.6+.

Query is the generic base class for a popup dialog.
The user must either enter a valid answer or close the dialog.
Expand Down
14 changes: 8 additions & 6 deletions Lib/idlelib/replace.py
Original file line number Diff line number Diff line change
Expand Up @@ -205,12 +205,12 @@ def close(self, event=None):

def _replace_dialog(parent): # htest #
from tkinter import Toplevel, Text, END, SEL
from tkinter.ttk import Button
from tkinter.ttk import Frame, Button

box = Toplevel(parent)
box.title("Test ReplaceDialog")
top = Toplevel(parent)
top.title("Test ReplaceDialog")
x, y = map(int, parent.geometry().split('+')[1:])
box.geometry("+%d+%d" % (x, y + 175))
top.geometry("+%d+%d" % (x, y + 175))

# mock undo delegator methods
def undo_block_start():
Expand All @@ -219,7 +219,9 @@ def undo_block_start():
def undo_block_stop():
pass

text = Text(box, inactiveselectbackground='gray')
frame = Frame(top)
frame.pack()
text = Text(frame, inactiveselectbackground='gray')
text.undo_block_start = undo_block_start
text.undo_block_stop = undo_block_stop
text.pack()
Expand All @@ -231,7 +233,7 @@ def show_replace():
replace(text)
text.tag_remove(SEL, "1.0", END)

button = Button(box, text="Replace", command=show_replace)
button = Button(frame, text="Replace", command=show_replace)
button.pack()

if __name__ == '__main__':
Expand Down
2 changes: 1 addition & 1 deletion Lib/idlelib/scrolledlist.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
from tkinter import *
from tkinter.ttk import Scrollbar
from tkinter.ttk import Frame, Scrollbar

from idlelib import macosx

Expand Down
15 changes: 9 additions & 6 deletions Lib/idlelib/search.py
Original file line number Diff line number Diff line change
Expand Up @@ -75,13 +75,16 @@ def find_selection(self, text):
def _search_dialog(parent): # htest #
"Display search test box."
from tkinter import Toplevel, Text
from tkinter.ttk import Button
from tkinter.ttk import Frame, Button

box = Toplevel(parent)
box.title("Test SearchDialog")
top = Toplevel(parent)
top.title("Test SearchDialog")
x, y = map(int, parent.geometry().split('+')[1:])
box.geometry("+%d+%d" % (x, y + 175))
text = Text(box, inactiveselectbackground='gray')
top.geometry("+%d+%d" % (x, y + 175))

frame = Frame(top)
frame.pack()
text = Text(frame, inactiveselectbackground='gray')
text.pack()
text.insert("insert","This is a sample string.\n"*5)

Expand All @@ -90,7 +93,7 @@ def show_find():
_setup(text).open(text)
text.tag_remove('sel', '1.0', 'end')

button = Button(box, text="Search (selection ignored)", command=show_find)
button = Button(frame, text="Search (selection ignored)", command=show_find)
button.pack()

if __name__ == '__main__':
Expand Down
4 changes: 2 additions & 2 deletions Lib/idlelib/searchbase.py
EEB2
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
'''Define SearchDialogBase used by Search, Replace, and Grep dialogs.'''

from tkinter import Toplevel, Frame
from tkinter.ttk import Entry, Label, Button, Checkbutton, Radiobutton
from tkinter import Toplevel
from tkinter.ttk import Frame, Entry, Label, Button, Checkbutton, Radiobutton


class SearchDialogBase:
Expand Down
2 changes: 1 addition & 1 deletion Lib/idlelib/tree.py
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@
import os

from tkinter import *
from tkinter.ttk import Scrollbar
from tkinter.ttk import Frame, Scrollbar

from idlelib.config import idleConf
from idlelib import zoomheight
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Use ttk Frame for ttk widgets.
0