How to init a Tkinter canvas dependent on a main Tkinter window
I am new to programing and am currently trying to do a program that draws graphs for affine functions (functions under the form f(x)=ax+b) with the Tkinter python library. I am doing a class called graph but when I want to init the canvas object it must be dependent to a frame. How can I init the main frame and a canvas object inside of a class? Here is the code:
class Graph:
def __init__(self, a="", b="", dimensions=None, graduation=None, graph=tkinter.Tk(), graphing_area=tkinter.Canvas(graph, height=500, width=500)):
self.a = a
self.b = b
self.dimensions = dimensions
self.graduation = graduation
self.graph = graph
self.graphing_area = graphing_area
python class tkinter
add a comment |
I am new to programing and am currently trying to do a program that draws graphs for affine functions (functions under the form f(x)=ax+b) with the Tkinter python library. I am doing a class called graph but when I want to init the canvas object it must be dependent to a frame. How can I init the main frame and a canvas object inside of a class? Here is the code:
class Graph:
def __init__(self, a="", b="", dimensions=None, graduation=None, graph=tkinter.Tk(), graphing_area=tkinter.Canvas(graph, height=500, width=500)):
self.a = a
self.b = b
self.dimensions = dimensions
self.graduation = graduation
self.graph = graph
self.graphing_area = graphing_area
python class tkinter
Make sure that you calltkinter.Tk()
exactly once. That doesn't just create the root window, it also creates an instance of the Tcl interpreter that controls the GUI.
– PM 2Ring
Nov 23 '18 at 12:35
add a comment |
I am new to programing and am currently trying to do a program that draws graphs for affine functions (functions under the form f(x)=ax+b) with the Tkinter python library. I am doing a class called graph but when I want to init the canvas object it must be dependent to a frame. How can I init the main frame and a canvas object inside of a class? Here is the code:
class Graph:
def __init__(self, a="", b="", dimensions=None, graduation=None, graph=tkinter.Tk(), graphing_area=tkinter.Canvas(graph, height=500, width=500)):
self.a = a
self.b = b
self.dimensions = dimensions
self.graduation = graduation
self.graph = graph
self.graphing_area = graphing_area
python class tkinter
I am new to programing and am currently trying to do a program that draws graphs for affine functions (functions under the form f(x)=ax+b) with the Tkinter python library. I am doing a class called graph but when I want to init the canvas object it must be dependent to a frame. How can I init the main frame and a canvas object inside of a class? Here is the code:
class Graph:
def __init__(self, a="", b="", dimensions=None, graduation=None, graph=tkinter.Tk(), graphing_area=tkinter.Canvas(graph, height=500, width=500)):
self.a = a
self.b = b
self.dimensions = dimensions
self.graduation = graduation
self.graph = graph
self.graphing_area = graphing_area
python class tkinter
python class tkinter
edited Nov 23 '18 at 14:19
patthoyts
22.9k24270
22.9k24270
asked Nov 23 '18 at 12:20
JonathcraftJonathcraft
154
154
Make sure that you calltkinter.Tk()
exactly once. That doesn't just create the root window, it also creates an instance of the Tcl interpreter that controls the GUI.
– PM 2Ring
Nov 23 '18 at 12:35
add a comment |
Make sure that you calltkinter.Tk()
exactly once. That doesn't just create the root window, it also creates an instance of the Tcl interpreter that controls the GUI.
– PM 2Ring
Nov 23 '18 at 12:35
Make sure that you call
tkinter.Tk()
exactly once. That doesn't just create the root window, it also creates an instance of the Tcl interpreter that controls the GUI.– PM 2Ring
Nov 23 '18 at 12:35
Make sure that you call
tkinter.Tk()
exactly once. That doesn't just create the root window, it also creates an instance of the Tcl interpreter that controls the GUI.– PM 2Ring
Nov 23 '18 at 12:35
add a comment |
1 Answer
1
active
oldest
votes
Initiate values of graph and graphing_area outside arguments section. If you want option to set graph as function parameter set graph
parameter to None
by default and set self.graph
to graph
only if value is different that None
.
class Graph:
def __init__(self, a="", b="", dimensions=None, graduation=None, graph=None):
self.a = a
self.b = b
self.dimensions = dimensions
self.graduation = graduation
if not graph:
self.graph = tkinter.Tk()
else:
self.graph = graph
self.graphing_area = tkinter.Canvas(self.graph, height=500, width=500)
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%2f53446634%2fhow-to-init-a-tkinter-canvas-dependent-on-a-main-tkinter-window%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
Initiate values of graph and graphing_area outside arguments section. If you want option to set graph as function parameter set graph
parameter to None
by default and set self.graph
to graph
only if value is different that None
.
class Graph:
def __init__(self, a="", b="", dimensions=None, graduation=None, graph=None):
self.a = a
self.b = b
self.dimensions = dimensions
self.graduation = graduation
if not graph:
self.graph = tkinter.Tk()
else:
self.graph = graph
self.graphing_area = tkinter.Canvas(self.graph, height=500, width=500)
add a comment |
Initiate values of graph and graphing_area outside arguments section. If you want option to set graph as function parameter set graph
parameter to None
by default and set self.graph
to graph
only if value is different that None
.
class Graph:
def __init__(self, a="", b="", dimensions=None, graduation=None, graph=None):
self.a = a
self.b = b
self.dimensions = dimensions
self.graduation = graduation
if not graph:
self.graph = tkinter.Tk()
else:
self.graph = graph
self.graphing_area = tkinter.Canvas(self.graph, height=500, width=500)
add a comment |
Initiate values of graph and graphing_area outside arguments section. If you want option to set graph as function parameter set graph
parameter to None
by default and set self.graph
to graph
only if value is different that None
.
class Graph:
def __init__(self, a="", b="", dimensions=None, graduation=None, graph=None):
self.a = a
self.b = b
self.dimensions = dimensions
self.graduation = graduation
if not graph:
self.graph = tkinter.Tk()
else:
self.graph = graph
self.graphing_area = tkinter.Canvas(self.graph, height=500, width=500)
Initiate values of graph and graphing_area outside arguments section. If you want option to set graph as function parameter set graph
parameter to None
by default and set self.graph
to graph
only if value is different that None
.
class Graph:
def __init__(self, a="", b="", dimensions=None, graduation=None, graph=None):
self.a = a
self.b = b
self.dimensions = dimensions
self.graduation = graduation
if not graph:
self.graph = tkinter.Tk()
else:
self.graph = graph
self.graphing_area = tkinter.Canvas(self.graph, height=500, width=500)
answered Nov 23 '18 at 12:31
Filip MłynarskiFilip Młynarski
1,5781311
1,5781311
add a comment |
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.
Some of your past answers have not been well-received, and you're in danger of being blocked from answering.
Please pay close attention to the following guidance:
- 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%2f53446634%2fhow-to-init-a-tkinter-canvas-dependent-on-a-main-tkinter-window%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
Make sure that you call
tkinter.Tk()
exactly once. That doesn't just create the root window, it also creates an instance of the Tcl interpreter that controls the GUI.– PM 2Ring
Nov 23 '18 at 12:35