self.windows = {
“about”: AboutWindow(self),
…
“tdr”: TDRWindow(self),
}
Can somebody kindly explain the above in English ?
the colon (:
) has a special meaning depending on its context. In the context of the dictionary you provided, it separates the keys from the values.
self.windows
is a “dictionary,” which you can tell by the {braces}. Dictionaries contain pairs of “keys” and “values”; asking for self.windows['about']
would return AboutWindow(self)
. If you had a sequence of items in {braces} and didn’t include the “:”, you would get a “set,” which is like a list but each item must be unique.
OK, if I do understand correctly
“windows” class now have a “dictionary” and it has several “keys” assigned / defined.
If I do this
“tdr”: TDRWindow(self),
“DTW”: TDRWindow(self),
I could refer to TDRWindow by tdr or DTW
However I need to add to this dictionary
“DTW”: DTWWindow(self),
and I get
File “/mnt/RAID_124/PYTHON_TEST_PROJECTS_FOLDER/nanovna-saver-clean_CLONE-JULY18_version1/src/NanoVNASaver/NanoVNASaver.py”, line 320, in init
“DTW”: DTWWindow(self),
NameError: name ‘DTWWindow’ is not defined. Did you mean: ‘TDRWindow’?
which tells me I need to “import”
DTWWindow
since I was ignorant aboput the "dictionary " I could not figure out the issue .
Thanks
Yes, you have understood correctly.
The windows
object is indeed a dictionary in Python, and it has several keys each assigned to a window object. You can access the window objects via their respective keys.
Regarding the error message you are seeing, the Python interpreter is saying that it doesn’t recognize DTWWindow
. This could mean a couple of things:
- You might have forgotten to import
DTWWindow
. If this class is defined in a different module, you’ll need to import it at the top of your file with a line likefrom mymodule import DTWWindow
. Replacemymodule
with the actual name of the module (i.e., file or package) whereDTWWindow
is defined. - It’s possible that there’s a typo in the name
DTWWindow
. Ensure that this class is defined and spelled correctly in your code or in the module you’re importing it from. - If
DTWWindow
is defined later in the file, you’ll need to move the definition before it’s used in the dictionary. Python interprets files from top to bottom, so if a class or function is used before it’s defined, Python will raise aNameError
.
Once you’ve addressed these issues, the line "DTW": DTWWindow(self),
should work correctly. The key "DTW"
in your windows
dictionary will be associated with an instance of the DTWWindow
class.
Is there a way to “start a new discussion” instead using “reply” ?
I just cannot get this “forum” new stuff going - it keeps throwing it back as "undeliverable "…
Is there a way to “start a new discussion” instead using “reply” ?
On the topic front page:
there’s a “+ new topic” button at the top right.
I just cannot get this “forum” new stuff going - it keeps throwing it
back as "undeliverable "…
You could make a new topic just for this, as it sounds like you’re using
the forum via email here.
Cheers,
Cameron Simpson cs@cskk.id.au
Start logging in to the site instead of interacting with it by email. Email is not helping the quality of your posts, they’re poorly formatted and hard to read. You’ve already gotten a lot of advice about how to improve your interaction and experience on the site: Communication issues - #3 by CAM-Gerlach I suggest you start following it.