7 Segment display tkinter
I want to create a GUI which includes a 7 segment display. I need to be able to have 3 displays next to each other.
My question is basically this: Seven segment display in Tkinter
However, I cannot work out to add another display next to it. I get that if I change the offset it will move the display but nothing I seem to do with add in another display next to it.
I understand that this is repeating a question however I cannot comment back on the original post.
Any help wouldbe greatly appreciated.
python user-interface tkinter display
add a comment |
I want to create a GUI which includes a 7 segment display. I need to be able to have 3 displays next to each other.
My question is basically this: Seven segment display in Tkinter
However, I cannot work out to add another display next to it. I get that if I change the offset it will move the display but nothing I seem to do with add in another display next to it.
I understand that this is repeating a question however I cannot comment back on the original post.
Any help wouldbe greatly appreciated.
python user-interface tkinter display
read the sources over at tk-tools.readthedocs.io/en/latest/… ? No idea about it's quality though - never used it.
– Patrick Artner
Jan 2 at 9:20
add a comment |
I want to create a GUI which includes a 7 segment display. I need to be able to have 3 displays next to each other.
My question is basically this: Seven segment display in Tkinter
However, I cannot work out to add another display next to it. I get that if I change the offset it will move the display but nothing I seem to do with add in another display next to it.
I understand that this is repeating a question however I cannot comment back on the original post.
Any help wouldbe greatly appreciated.
python user-interface tkinter display
I want to create a GUI which includes a 7 segment display. I need to be able to have 3 displays next to each other.
My question is basically this: Seven segment display in Tkinter
However, I cannot work out to add another display next to it. I get that if I change the offset it will move the display but nothing I seem to do with add in another display next to it.
I understand that this is repeating a question however I cannot comment back on the original post.
Any help wouldbe greatly appreciated.
python user-interface tkinter display
python user-interface tkinter display
asked Jan 2 at 9:16
JackUJackU
19413
19413
read the sources over at tk-tools.readthedocs.io/en/latest/… ? No idea about it's quality though - never used it.
– Patrick Artner
Jan 2 at 9:20
add a comment |
read the sources over at tk-tools.readthedocs.io/en/latest/… ? No idea about it's quality though - never used it.
– Patrick Artner
Jan 2 at 9:20
read the sources over at tk-tools.readthedocs.io/en/latest/… ? No idea about it's quality though - never used it.
– Patrick Artner
Jan 2 at 9:20
read the sources over at tk-tools.readthedocs.io/en/latest/… ? No idea about it's quality though - never used it.
– Patrick Artner
Jan 2 at 9:20
add a comment |
1 Answer
1
active
oldest
votes
You can create another object of the class Digit
with a different offset. Here is an example.
import tkinter as tk
root = tk.Tk()
screen = tk.Canvas(root)
screen.grid()
offsets = (
(0, 0, 1, 0), # top
(1, 0, 1, 1), # upper right
(1, 1, 1, 2), # lower right
(0, 2, 1, 2), # bottom
(0, 1, 0, 2), # lower left
(0, 0, 0, 1), # upper left
(0, 1, 1, 1), # middle
)
# Segments used for each digit; 0, 1 = off, on.
digits = (
(1, 1, 1, 1, 1, 1, 0), # 0
(0, 1, 1, 0, 0, 0, 0), # 1
(1, 1, 0, 1, 1, 0, 1), # 2
(1, 1, 1, 1, 0, 0, 1), # 3
(0, 1, 1, 0, 0, 1, 1), # 4
(1, 0, 1, 1, 0, 1, 1), # 5
(1, 0, 1, 1, 1, 1, 1), # 6
(1, 1, 1, 0, 0, 0, 0), # 7
(1, 1, 1, 1, 1, 1, 1), # 8
(1, 1, 1, 1, 0, 1, 1), # 9
)
class Digit:
def __init__(self, canvas, x=10, y=10, length=20, width=4):
self.canvas = canvas
l = length
self.segs =
for x0, y0, x1, y1 in offsets:
self.segs.append(canvas.create_line(
x + x0*l, y + y0*l, x + x1*l, y + y1*l,
width=width, state = 'hidden'))
def show(self, num):
for iid, on in zip(self.segs, digits[num]):
self.canvas.itemconfigure(iid, state = 'normal' if on else 'hidden')
dig = Digit(screen, 10, 10) ##
dig1 = Digit(screen, 40, 10) ##
n = 0
def update():
global n
dig.show(n)
dig1.show(n) ## Control what you want to show here , eg (n+1)%10
n = (n+1) % 10
root.after(1000, update)
root.after(1000, update)
root.mainloop()
Thank you, didn't realise it was this easy, woops!
– JackU
Jan 2 at 9:46
add a comment |
Your Answer
StackExchange.ifUsing("editor", function () {
StackExchange.using("externalEditor", function () {
StackExchange.using("snippets", function () {
StackExchange.snippets.init();
});
});
}, "code-snippets");
StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "1"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});
function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});
}
});
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f54003781%2f7-segment-display-tkinter%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
1 Answer
1
active
oldest
votes
1 Answer
1
active
oldest
votes
active
oldest
votes
active
oldest
votes
You can create another object of the class Digit
with a different offset. Here is an example.
import tkinter as tk
root = tk.Tk()
screen = tk.Canvas(root)
screen.grid()
offsets = (
(0, 0, 1, 0), # top
(1, 0, 1, 1), # upper right
(1, 1, 1, 2), # lower right
(0, 2, 1, 2), # bottom
(0, 1, 0, 2), # lower left
(0, 0, 0, 1), # upper left
(0, 1, 1, 1), # middle
)
# Segments used for each digit; 0, 1 = off, on.
digits = (
(1, 1, 1, 1, 1, 1, 0), # 0
(0, 1, 1, 0, 0, 0, 0), # 1
(1, 1, 0, 1, 1, 0, 1), # 2
(1, 1, 1, 1, 0, 0, 1), # 3
(0, 1, 1, 0, 0, 1, 1), # 4
(1, 0, 1, 1, 0, 1, 1), # 5
(1, 0, 1, 1, 1, 1, 1), # 6
(1, 1, 1, 0, 0, 0, 0), # 7
(1, 1, 1, 1, 1, 1, 1), # 8
(1, 1, 1, 1, 0, 1, 1), # 9
)
class Digit:
def __init__(self, canvas, x=10, y=10, length=20, width=4):
self.canvas = canvas
l = length
self.segs =
for x0, y0, x1, y1 in offsets:
self.segs.append(canvas.create_line(
x + x0*l, y + y0*l, x + x1*l, y + y1*l,
width=width, state = 'hidden'))
def show(self, num):
for iid, on in zip(self.segs, digits[num]):
self.canvas.itemconfigure(iid, state = 'normal' if on else 'hidden')
dig = Digit(screen, 10, 10) ##
dig1 = Digit(screen, 40, 10) ##
n = 0
def update():
global n
dig.show(n)
dig1.show(n) ## Control what you want to show here , eg (n+1)%10
n = (n+1) % 10
root.after(1000, update)
root.after(1000, update)
root.mainloop()
Thank you, didn't realise it was this easy, woops!
– JackU
Jan 2 at 9:46
add a comment |
You can create another object of the class Digit
with a different offset. Here is an example.
import tkinter as tk
root = tk.Tk()
screen = tk.Canvas(root)
screen.grid()
offsets = (
(0, 0, 1, 0), # top
(1, 0, 1, 1), # upper right
(1, 1, 1, 2), # lower right
(0, 2, 1, 2), # bottom
(0, 1, 0, 2), # lower left
(0, 0, 0, 1), # upper left
(0, 1, 1, 1), # middle
)
# Segments used for each digit; 0, 1 = off, on.
digits = (
(1, 1, 1, 1, 1, 1, 0), # 0
(0, 1, 1, 0, 0, 0, 0), # 1
(1, 1, 0, 1, 1, 0, 1), # 2
(1, 1, 1, 1, 0, 0, 1), # 3
(0, 1, 1, 0, 0, 1, 1), # 4
(1, 0, 1, 1, 0, 1, 1), # 5
(1, 0, 1, 1, 1, 1, 1), # 6
(1, 1, 1, 0, 0, 0, 0), # 7
(1, 1, 1, 1, 1, 1, 1), # 8
(1, 1, 1, 1, 0, 1, 1), # 9
)
class Digit:
def __init__(self, canvas, x=10, y=10, length=20, width=4):
self.canvas = canvas
l = length
self.segs =
for x0, y0, x1, y1 in offsets:
self.segs.append(canvas.create_line(
x + x0*l, y + y0*l, x + x1*l, y + y1*l,
width=width, state = 'hidden'))
def show(self, num):
for iid, on in zip(self.segs, digits[num]):
self.canvas.itemconfigure(iid, state = 'normal' if on else 'hidden')
dig = Digit(screen, 10, 10) ##
dig1 = Digit(screen, 40, 10) ##
n = 0
def update():
global n
dig.show(n)
dig1.show(n) ## Control what you want to show here , eg (n+1)%10
n = (n+1) % 10
root.after(1000, update)
root.after(1000, update)
root.mainloop()
Thank you, didn't realise it was this easy, woops!
– JackU
Jan 2 at 9:46
add a comment |
You can create another object of the class Digit
with a different offset. Here is an example.
import tkinter as tk
root = tk.Tk()
screen = tk.Canvas(root)
screen.grid()
offsets = (
(0, 0, 1, 0), # top
(1, 0, 1, 1), # upper right
(1, 1, 1, 2), # lower right
(0, 2, 1, 2), # bottom
(0, 1, 0, 2), # lower left
(0, 0, 0, 1), # upper left
(0, 1, 1, 1), # middle
)
# Segments used for each digit; 0, 1 = off, on.
digits = (
(1, 1, 1, 1, 1, 1, 0), # 0
(0, 1, 1, 0, 0, 0, 0), # 1
(1, 1, 0, 1, 1, 0, 1), # 2
(1, 1, 1, 1, 0, 0, 1), # 3
(0, 1, 1, 0, 0, 1, 1), # 4
(1, 0, 1, 1, 0, 1, 1), # 5
(1, 0, 1, 1, 1, 1, 1), # 6
(1, 1, 1, 0, 0, 0, 0), # 7
(1, 1, 1, 1, 1, 1, 1), # 8
(1, 1, 1, 1, 0, 1, 1), # 9
)
class Digit:
def __init__(self, canvas, x=10, y=10, length=20, width=4):
self.canvas = canvas
l = length
self.segs =
for x0, y0, x1, y1 in offsets:
self.segs.append(canvas.create_line(
x + x0*l, y + y0*l, x + x1*l, y + y1*l,
width=width, state = 'hidden'))
def show(self, num):
for iid, on in zip(self.segs, digits[num]):
self.canvas.itemconfigure(iid, state = 'normal' if on else 'hidden')
dig = Digit(screen, 10, 10) ##
dig1 = Digit(screen, 40, 10) ##
n = 0
def update():
global n
dig.show(n)
dig1.show(n) ## Control what you want to show here , eg (n+1)%10
n = (n+1) % 10
root.after(1000, update)
root.after(1000, update)
root.mainloop()
You can create another object of the class Digit
with a different offset. Here is an example.
import tkinter as tk
root = tk.Tk()
screen = tk.Canvas(root)
screen.grid()
offsets = (
(0, 0, 1, 0), # top
(1, 0, 1, 1), # upper right
(1, 1, 1, 2), # lower right
(0, 2, 1, 2), # bottom
(0, 1, 0, 2), # lower left
(0, 0, 0, 1), # upper left
(0, 1, 1, 1), # middle
)
# Segments used for each digit; 0, 1 = off, on.
digits = (
(1, 1, 1, 1, 1, 1, 0), # 0
(0, 1, 1, 0, 0, 0, 0), # 1
(1, 1, 0, 1, 1, 0, 1), # 2
(1, 1, 1, 1, 0, 0, 1), # 3
(0, 1, 1, 0, 0, 1, 1), # 4
(1, 0, 1, 1, 0, 1, 1), # 5
(1, 0, 1, 1, 1, 1, 1), # 6
(1, 1, 1, 0, 0, 0, 0), # 7
(1, 1, 1, 1, 1, 1, 1), # 8
(1, 1, 1, 1, 0, 1, 1), # 9
)
class Digit:
def __init__(self, canvas, x=10, y=10, length=20, width=4):
self.canvas = canvas
l = length
self.segs =
for x0, y0, x1, y1 in offsets:
self.segs.append(canvas.create_line(
x + x0*l, y + y0*l, x + x1*l, y + y1*l,
width=width, state = 'hidden'))
def show(self, num):
for iid, on in zip(self.segs, digits[num]):
self.canvas.itemconfigure(iid, state = 'normal' if on else 'hidden')
dig = Digit(screen, 10, 10) ##
dig1 = Digit(screen, 40, 10) ##
n = 0
def update():
global n
dig.show(n)
dig1.show(n) ## Control what you want to show here , eg (n+1)%10
n = (n+1) % 10
root.after(1000, update)
root.after(1000, update)
root.mainloop()
answered Jan 2 at 9:32
Miraj50Miraj50
2,7801925
2,7801925
Thank you, didn't realise it was this easy, woops!
– JackU
Jan 2 at 9:46
add a comment |
Thank you, didn't realise it was this easy, woops!
– JackU
Jan 2 at 9:46
Thank you, didn't realise it was this easy, woops!
– JackU
Jan 2 at 9:46
Thank you, didn't realise it was this easy, woops!
– JackU
Jan 2 at 9:46
add a comment |
Thanks for contributing an answer to Stack Overflow!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f54003781%2f7-segment-display-tkinter%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
read the sources over at tk-tools.readthedocs.io/en/latest/… ? No idea about it's quality though - never used it.
– Patrick Artner
Jan 2 at 9:20