hi people.
when i create a widget, such as a toplevel window, and then i destroy
it, how can i test that it has been destroyed? the problem is that even
after it has been destroyed, the instance still exists and has a tkinter
name, so testing for None is not feasible: import Tkinter fin = None fin1 = Tkinter.Topleve l() fin1.destroy() print fin1
..1075951116
any help?
bye
macs 6 17978
On Tue, 29 Mar 2005 10:37:10 GMT, max(01)* <ma**@fisso.cas a> wrote: hi people.
when i create a widget, such as a toplevel window, and then i destroy it, how can i test that it has been destroyed? the problem is that even after it has been destroyed, the instance still exists and has a tkinter name, so testing for None is not feasible:
>>> import Tkinter >>> fin = None >>> fin1 = Tkinter.Topleve l() >>> fin1.destroy() >>> print fin1 .1075951116
The winfo_exists method is what you want: print fin1.winfo_exis ts()
0
However, I'm curious about *why* you want to do that: since *you* made the call to destroy, what would you want to do anything with a widget you've already destroyed?
HTH
--
python -c 'print "".join([chr(154 - ord(c)) for c in "U(17zX(%,5.z^5 (17l8(%,5.Z*(93-965$l7+-"])'
Eric Brunel wrote: On Tue, 29 Mar 2005 10:37:10 GMT, max(01)* <ma**@fisso.cas a> wrote:
hi people.
when i create a widget, such as a toplevel window, and then i destroy it, how can i test that it has been destroyed? the problem is that even after it has been destroyed, the instance still exists and has a tkinter name, so testing for None is not feasible:
>>> import Tkinter >>> fin = None >>> fin1 = Tkinter.Topleve l() >>> fin1.destroy() >>> print fin1 .1075951116
The winfo_exists method is what you want:
print fin1.winfo_exis ts()
0
However, I'm curious about *why* you want to do that: since *you* made the call to destroy, what would you want to do anything with a widget you've already destroyed?
my main window has a button that opens another toplevel window. this
button is bound to a method that creates the window and does some other
processing *only if* the windows does not exist yet (otherwise, the user
could click more on the button and multiple copies of the window would
pop up, which is not what i want... in fact what i do is to assign None
to a variable called self.dialogo in my main application code, then i do
self.dialogo = Toplevel() inside the method...)
in this precise moment, though, it comes to my mind that i could achieve
the purpose simply activating/deactivating the button according to a flag...
anyway, i attach the code, so you can see better what i mean...
anyone who has to say anything about is welcome of course...
it is a tentative adapration of a program found in the tcl/tk package demo
---cut here---
from Tkinter import *
class MiaApp:
def __init__(self, genitore):
self.mioGenitor e = genitore
self.fonte = ("Helvetica" , 12)
self.fonteVar = ("Helvetica" , 14)
self.quadro_gra nde = Frame(genitore)
self.quadro_gra nde.pack(expand = YES, fill = BOTH)
self.msg = Label(self.quad ro_grande)
self.msg.config ure(
font = self.fonte,
wraplength = "10c",
justify = LEFT,
text = u"Sono qui sotto presentati tre pulsanti a spunta. \
Premendo un pulsante, se ne varia lo stato di selezione e si \
imposta una variabile a un valore che indica lo stato del \
pulsante stesso. Premendo il pulsante \u00ABMostra \
Variabili\u00BB si possono vedere i valori correnti delle \
variabili."
)
self.msg.pack(s ide = TOP)
self.pulsanti = Frame(self.quad ro_grande)
self.pulsanti.p ack(side = BOTTOM, fill = X, padx = "2m")
self.pulsanti_s punta = Frame(self.quad ro_grande)
self.pulsanti_s punta.pack(side = TOP, fill = X, padx = "2m")
self.annulla = Button(self.pul santi)
self.annulla.co nfigure(
text = "Annulla",
command = self.mioGenitor e.destroy
)
self.annulla.pa ck(side = LEFT, expand = YES)
self.var = Button(self.pul santi)
self.var.config ure(
text = "Mostra Variabili",
command = self.pulsanteMo straVariabiliPr emuto
)
self.var.pack(s ide = LEFT, expand = YES)
self.tergicrist alli = IntVar()
self.b1 = Checkbutton(sel f.pulsanti_spun ta)
self.b1.configu re(
text = "Tergicrist alli a posto",
variable = self.tergicrist alli,
relief = FLAT
)
self.b1.pack(
side = TOP,
pady = 2,
anchor = W
)
self.freni = IntVar()
self.b2 = Checkbutton(sel f.pulsanti_spun ta)
self.b2.configu re(
text = "Freni a posto",
variable = self.freni,
relief = FLAT
)
self.b2.pack(
side = TOP,
pady = 2,
anchor = W
)
self.autista = IntVar()
self.b3 = Checkbutton(sel f.pulsanti_spun ta)
self.b3.configu re(
text = "Autista sobrio",
variable = self.autista,
relief = FLAT
)
self.b3.pack(
side = TOP,
pady = 2,
anchor = W
)
self.dialogo = None
def mostraVariabili (self, *argomenti):
self.dialogo = Toplevel()
self.dialogo.wm _title("Valori delle variabili")
self.dialogo.qu adro_grande = Frame(self.dial ogo)
self.dialogo.qu adro_grande.pac k(expand = YES, fill = BOTH)
self.dialogo.ti tolo = Label(self.dial ogo.quadro_gran de)
self.dialogo.ti tolo.configure(
text = "Valori delle variabili:",
width = 20,
font = self.fonteVar
)
self.dialogo.ti tolo.pack(side = TOP, fill = X)
lung = 1
for i in argomenti:
if len(i) > lung:
lung = len(i)
self.dialogo.dq = {}
self.dialogo.dn = {}
self.dialogo.dv = {}
for i in argomenti:
self.dialogo.dq[i] = Frame(self.dial ogo.quadro_gran de)
self.dialogo.dq[i].pack(
side = TOP,
anchor = W,
fill = X
)
self.dialogo.dn[i] = Label(self.dial ogo.dq[i])
self.dialogo.dn[i].configure(
text = i + ": ",
width = lung + 2,
anchor = W
)
self.dialogo.dn[i].pack(
side = LEFT
)
self.dialogo.dv[i] = Label(self.dial ogo.dq[i])
self.dialogo.dv[i].configure(
textvariable = self.freni, ### FIXME
anchor = W
)
self.dialogo.dv[i].pack(
side = LEFT,
expand = YES,
fill = X
)
self.dialogo.va Bene = Button(self.dia logo.quadro_gra nde)
self.dialogo.va Bene.configure(
text = "Va Bene",
command = self.pulsanteVa BenePremuto,
default = ACTIVE
)
self.dialogo.va Bene.bind(
"<Return>",
self.pulsanteVa BenePremuto_a
)
self.dialogo.va Bene.focus_forc e()
self.dialogo.va Bene.pack(
side = BOTTOM,
pady = 2
)
def pulsanteVaBeneP remuto(self):
self.dialogo.de stroy()
self.dialogo = None
def pulsanteVaBeneP remuto_a(self, evento):
self.pulsanteVa BenePremuto()
def pulsanteMostraV ariabiliPremuto (self):
if not self.dialogo:
self.mostraVari abili("self.ter gicristalli",
"self.freni ",
"self.autis ta") ### FIXME
else:
self.dialogo.li ft(self.mioGeni tore)
radice = Tk()
radice.wm_title ("Dimostrazi one Pulsanti a Spunta")
radice.wm_iconn ame("spunta")
miaApp = MiaApp(radice)
radice.mainloop ()
Your app seems to give the right state values only if you select 'Freni
a posto'. But I see you recognize that with your 'FIXME' note.
also the app seems to have too many variables and widgets defined as
self objects. That isn't necessary unless they will be used outside
the method they were created in (which labels and buttons usually
aren't), so all you are doing is using up more memory than necessary.
Reading the code with Italian names adds a little difficulty in
understanding your code (non parlo italiano ma si parlo espagnol), but
I'm left feeling that your app is more complicated than it needs to be
- unless I'm missing something. What you are doing is just showing how
you can capture the state of the checkbuttons for use elsewhere, right?
And also, that the state in the 2nd window should be live, so that it
updates with the change in value in the 1st window? And just a matter
of personal taste, but splitting up widget configuration over many
lines for me impedes readiblity and makes the code look like java or
c++ : surely not what we want?
I also think you could get away with no frames in your initial window,
at least if you use grid() instead of pack(). Also your three state
variables could be members of a list, so you don't have to have
separate constructors for each of them.
Anyway here's a version of your app that makes use of a 'for' statement
to draw the labels and checkbuttons, so it's only half as long as your
original app. It also does the right thing - the key pont you were
missing was to use a 'textvariable' argument in defining your label
widgets in the 2nd window.
cheers
Stewart in Calgary
---
#tested on Windows XP with Python 2.4
from Tkinter import *
class MiaApp:
def __init__(self, genitore):
self.debug = 1 #debug flag
self.fonte = ("Helvetica" , 12)
self.fonteVar = ("Helvetica" , 14)
msg = Label(genitore, font = self.fonte, wraplength = "10c",
justify = LEFT,
text = u"Sono qui sotto presentati tre pulsanti a
spunta. \
Premendo un pulsante, se ne varia lo stato di selezione e si \
imposta una variabile a un valore che indica lo stato del \
pulsante stesso. Premendo il pulsante \u00ABMostra \
Variabili\u00BB si possono vedere i valori correnti delle \
variabili.")
msg.grid(row=0, column=0, sticky='w')
testo = ["Tergicrist alli a posto", "Freni a posto", "Autista
sobrio"]
self.testo = testo
variabili = []
pulsanti = []
for i in range(0,3):
variabili.appen d(None)
variabili[i] = IntVar()
variabili[i].set(0)
pulsanti.append (None)
pulsanti[i] = Checkbutton(gen itore, text = testo[i],
variable = variabili[i], relief = FLAT)
pulsanti[i].grid(row=i+1, column=0,pady = 2,sticky = 'w')
self.variabili = variabili
var1 = Button(genitore , text = "Mostra Variabili",
command = self.pulsanteMo straVariabiliPr emuto)
var1.grid(row=4 , column=0)
annulla = Button(genitore , text = "Annulla",
command = genitore.destro y)
annulla.grid(ro w=4, column=1)
def pulsanteMostraV ariabiliPremuto (self):
argomenti = []
for i in range(0,len(sel f.variabili)):
argomenti.appen d(self.variabil i[i].get())
if self.debug:
print "%s=%i" % (self.testo[i],
self.variabili[i].get())
self.mostraVari abili(argomenti )
def mostraVariabili (self, *argomenti):
dialogo = Toplevel()
dialogo.wm_titl e("Valori delle variabili")
self.dialogo = dialogo
titolo = Label(dialogo,
text = "Valori delle variabili:", width = 20,
font = self.fonteVar )
titolo.grid(row =0, column=0, sticky='w' )
massimo = len(max(self.te sto)) + 2
valore = []
pulsanti = []
for i in range(0,3):
pulsanti.append (None)
pulsanti[i] = Label(dialogo,
text = 'self.%s' % self.testo[i].split()[0],
width = massimo)
pulsanti[i].grid(row=1+i, column=0, pady = 2,sticky = 'w')
valore.append(N one)
valore[i] = Label(dialogo, text = self.variabili[i].get(),
textvariable = self.variabili[i])
valore[i].grid(row=i+1, column=1, pady = 2, sticky = 'w')
vaBene = Button(dialogo, text = "Va Bene",
command = self.pulsanteVa BenePremuto)
vaBene.bind("<R eturn>", lambda e=1:
self.pulsanteVa BenePremuto() )
vaBene.focus_fo rce()
#items can span more than one column if desired
vaBene.grid(row =4, column=0, pady = 2, sticky='e')
def pulsanteVaBeneP remuto(self):
self.dialogo.de stroy()
radice = Tk()
radice.wm_title ("Dimostrazi one Pulsanti a Spunta")
radice.wm_iconn ame("spunta")
miaApp = MiaApp(radice)
radice.mainloop () st************* **@gmail.com wrote: Your app seems to give the right state values only if you select 'Freni a posto'. But I see you recognize that with your 'FIXME' note.
also the app seems to have too many variables and widgets defined as self objects. That isn't necessary unless they will be used outside the method they were created in (which labels and buttons usually aren't), so all you are doing is using up more memory than necessary.
very good advice. i'll try to follow it (i am a newbie, you see...) Reading the code with Italian names adds a little difficulty in understanding your code (non parlo italiano ma si parlo espagnol),
i am trying to write an introductory article for an italian audience,
you see... next time i'll try to translate the names (i was a bit in a
hurry, sorry ;-)
but I'm left feeling that your app is more complicated than it needs to be - unless I'm missing something. What you are doing is just showing how you can capture the state of the checkbuttons for use elsewhere, right? And also, that the state in the 2nd window should be live, so that it updates with the change in value in the 1st window?
precisely.
And just a matter of personal taste, but splitting up widget configuration over many lines for me impedes readiblity and makes the code look like java or c++ : surely not what we want?
right... :-) I also think you could get away with no frames in your initial window, at least if you use grid() instead of pack().
as a matter of personal taste i prefer pack(), unless special reasons
for doing differently. i like better to give general structure
(hyerarchically ) to the gui than hardcoding the appearance.
Also your three state variables could be members of a list, so you don't have to have separate constructors for each of them.
ok...
Anyway here's a version of your app that makes use of a 'for' statement to draw the labels and checkbuttons, so it's only half as long as your original app. It also does the right thing - the key pont you were missing was to use a 'textvariable' argument in defining your label widgets in the 2nd window.
cheers Stewart in Calgary
i am going to study it thoroughly. thanks a lot.
bye
macs
> also the app seems to have too many variables and widgets defined as self objects. That isn't necessary unless they will be used outside the method they were created in (which labels and buttons usually aren't), so all you are doing is using up more memory than necessary.
you are right, and at the end of this post you will find a new version
of my code which heeds to your suggestion.
but i think there are exceptions.
consider for example building a BitmapImage for successive use in a
widget, such as:
self.immagine_1 a = PhotoImage()
self.immagine_1 a.configure(
file = "terra.gif"
)
self.e1 = Label(self.quad ro_grande)
self.e1.configu re(
image = self.immagine_1 a,
bd = 1,
relief = SUNKEN
)
if we follow your advice we should do:
immagine_1a = PhotoImage()
....
instead, but it doesn't work. why?
And just a matter of personal taste, but splitting up widget configuration over many lines for me impedes readiblity and makes the code look like java or c++ : surely not what we want?
i thought about it. i prefer not to have lines longer than the usual 80
char display, since (in my opinion) this produces an even more
unreadable code layout. but we are starting a holy war i think...
Also your three state variables could be members of a list, so you don't have to have separate constructors for each of them.
it's true. but the drawback is that you have to keep an explicit
mappping between names and variables; and what's worst is that this
mapping must be known by the function that displays the second windows,
and this is against data hiding.
if you are so kind as to peek at the attached code, you'll see that i
also have restructured that part as one class. i'd like to hear your
opinion about that. (now the code for the second window in completely
reusable, i guess)
Anyway here's a version of your app that makes use of a 'for' statement to draw the labels and checkbuttons, so it's only half as long as your original app. It also does the right thing - the key pont you were missing was to use a 'textvariable' argument in defining your label widgets in the 2nd window.
.... and to use eval()
massimo = len(max(self.te sto)) + 2
better: massimo = max(map(len, self.testo)) + 2
.....
anyway, here it is. bye!
----
from Tkinter import *
class MiaApp:
def __init__(self, genitore):
fonte = ("Helvetica" , 12)
quadro_grande = Frame(genitore)
quadro_grande.p ack(expand = YES, fill = BOTH)
msg = Label(quadro_gr ande)
msg.configure(
font = fonte,
wraplength = "10c",
justify = LEFT,
text = u"Sono qui sotto presentati tre pulsanti a spunta. \
Premendo un pulsante, se ne varia lo stato di selezione e si \
imposta una variabile a un valore che indica lo stato del \
pulsante stesso. Premendo il pulsante \u00ABMostra \
Variabili\u00BB si possono vedere i valori correnti delle \
variabili."
)
msg.pack(side = TOP)
pulsanti = Frame(quadro_gr ande)
pulsanti.pack(s ide = BOTTOM, fill = X, padx = "2m")
pulsanti_spunta = Frame(quadro_gr ande)
pulsanti_spunta .pack(side = TOP, fill = X, padx = "2m")
chiudi = Button(pulsanti )
chiudi.configur e(text = "Chiudi", command = genitore.destro y)
chiudi.pack(sid e = LEFT, expand = YES)
self.var = Button(pulsanti )
self.var.config ure(
text = "Mostra Variabili",
command = self.pulsanteMo straVariabiliPr emuto,
default = NORMAL
)
self.var.pack(s ide = LEFT, expand = YES)
self.tergicrist alli = IntVar()
ps1 = Checkbutton(pul santi_spunta)
ps1.configure(
text = "Tergicrist alli a posto",
variable = self.tergicrist alli,
relief = FLAT
)
ps1.pack(side = TOP, pady = 2, anchor = W)
self.freni = IntVar()
ps2 = Checkbutton(pul santi_spunta)
ps2.configure(
text = "Freni a posto",
variable = self.freni,
relief = FLAT
)
ps2.pack(side = TOP, pady = 2, anchor = W)
self.autista = IntVar()
ps3 = Checkbutton(pul santi_spunta)
ps3.configure(
text = "Autista sobrio",
variable = self.autista,
relief = FLAT
)
ps3.pack(side = TOP, pady = 2, anchor = W)
def pulsanteMostraV ariabiliPremuto (self):
if self.var.cget(" state") == ACTIVE:
self.var.config ure(state = DISABLED)
mv = MostraVariabili (
self,
"tergicristalli ",
"freni",
"autista"
)
class MostraVariabili (Toplevel):
def __init__(self, chiamante, *variabili):
Toplevel.__init __(self)
self.mioChiaman te = chiamante
fonteVar = ("Helvetica" , 14)
self.wm_title(" Valori delle variabili")
quadro_grande = Frame(self)
quadro_grande.p ack(expand = YES, fill = BOTH)
titolo = Label(quadro_gr ande)
titolo.configur e(
text = "Valori delle variabili:",
width = 20,
font = fonteVar
)
titolo.pack(sid e = TOP, fill = X)
lung = max(map(len, variabili))
dq = {}
dn = {}
dv = {}
for i in variabili:
dq[i] = Frame(quadro_gr ande)
dq[i].pack(side = TOP, anchor = W, fill = X)
dn[i] = Label(dq[i])
dn[i].configure(
text = i + ": ",
width = lung + 2,
anchor = W
)
dn[i].pack(side = LEFT)
dv[i] = Label(dq[i])
dv[i].configure(
textvariable = eval("self.mioC hiamante." + i),
anchor = W
)
dv[i].pack(side = LEFT, expand = YES, fill = X)
vaBene = Button(quadro_g rande)
vaBene.configur e(
text = "Va Bene",
command = self.pulsanteVa BenePremuto,
default = ACTIVE
)
vaBene.bind("<R eturn>", self.pulsanteVa BenePremuto_a)
vaBene.focus_fo rce()
vaBene.pack(sid e = BOTTOM, pady = 2)
def pulsanteVaBeneP remuto(self):
self.destroy()
self.mioChiaman te.var.configur e(state = NORMAL)
def pulsanteVaBeneP remuto_a(self, evento):
self.pulsanteVa BenePremuto()
radice = Tk()
radice.wm_title ("Dimostrazi one Pulsanti a Spunta")
radice.wm_iconn ame("spunta")
miaApp = MiaApp(radice)
radice.mainloop ()
Macs:
"if we follow your advice we should do:
immagine_1a = PhotoImage()
....
instead, but it doesn't work. why? "
Images are a special case. You need to create an object instance of
them through the self. construction or else Tkinter seems to forget
about them within a couple of lines of code. so yes, just use
self.immagine_1 a and it should work.
lots of good information on: http://tkinter.unpy.net/wiki
I took a quick look at your app but the button doesn't open the 2nd
window. I see that you sent your message a few days ago so you've
probably solved that problem by now.
S This thread has been closed and replies have been disabled. Please start a new discussion. Similar topics |
by: Andrew Gregory |
last post by:
Could someone help me out with these few lines of code: I would like
to know why the Quit button in this application removes the buttons
and causes "Quitting" to be printed, but does not close the outer
frame.
Andrew.
# Demonstration TK interface Windows application
# Runs ok from within IDLE
|
by: Rob |
last post by:
My first GUI so be gentle...
When I start my program I call a class that runs the initial window. While
in this class if a certain button is pressed it calls a function outside the
class. This function then initially calls another function to
"root.destroy()". Basically I want the current window gone so the function I
just called can open it's own window. The problem I'm stuck with is that
once this function is done and I need to close...
|
by: Mickel Grönroos |
last post by:
Hi everybody,
I'm using QuickTimeTcl (3.1) to be able to play movie files in my Tkinter
application (Python 2.3.2) on Windows 2000. I was planning to write a
simple wrapper class, QuickTimeMovie, that would wrap up the QuickTimeTcl
Tcl extension as a Python class. All seems to work pretty fine until the
Tkinter application is closed, when the Python interpreter crashes with an
error of the following kind:
The instruction at...
|
by: max(01)* |
last post by:
hello.
i wrote a very simple tkinter demo program that uses menus, buttons,
labels, entries, frames and secondary toplevels.
it is a python version of a java program made by a colleague.
the user can create ("Scrivi") a record with his second name, first name
and date of birth, save ("Salva") the record to a file or read in
("Leggi") a previously created file. "Annulla" is to cancel. "Chiudi" is
|
by: Stewart Midwinter |
last post by:
I have a Tkinter app running on cygwin. It includes a Test menu item
that does nothing more than fetch a directory listing and display it
in a Toplevel window (I'd use a tkMessageBox showinfo widget, but for
some reason the text is invisible on cygwin).
After I close the Toplevel widget, all of the menus in my app behave
as though they have no contents to them, i..e I can press on the File
menu button, and see it depress, but the Exit...
| |
by: Michael Yanowitz |
last post by:
Hello:
Below I have included a stripped down version of the GUI I am working on.
It contains 2 dialog boxes - one main and one settings. It has the following
problems, probably all related, that I am hoping someone knows what I am
doing wrong:
1) Pressing the Settings.. Button multiple times, brings up many instances
of the Settings Panel. I just want it to bring up one. Is there an easy
way to do that?
|
by: joshdw4 |
last post by:
I hate to do this, but I've thoroughly exhausted google search. Yes,
it's that pesky root window and I have tried withdraw to no avail. I'm
assuming this is because of the methods I'm using. I guess my question
is two-fold.
1) How do I get rid of that window?
2) Any comments in general? I am just learning python (and coding with
classes), so I'm sure there are things I should pound into my head
before I learn bad habits.
Here's the...
|
by: J-Burns |
last post by:
Hello. Im a bit new to using Tkinter and im not a real pro in
programming itself... :P. Need some help here.
Problem 1:
How do I make something appear on 2 separate windows using Tkinter? By
this I mean that the format would be something like this:
You have Page1 : This has 2-3 buttons on it.
Clicking on each button opens up a new window respectively having
|
by: nicstel |
last post by:
Hello.
My script run fine within python but not in my program(SDS/2 wich is a software like Autocad). The problem is I got an error when the time comes to read the line14 to 19. (Source code come from Tkinter.py)
class Tk(Misc, Wm):
"""Toplevel widget of Tk which represents mostly the main window
of an appliation. It has an associated Tcl interpreter."""
_w = '.'
def __init__(self, screenName=None, baseName=None,...
|
by: marktang |
last post by:
ONU (Optical Network Unit) is one of the key components for providing high-speed Internet services. Its primary function is to act as an endpoint device located at the user's premises. However, people are often confused as to whether an ONU can Work As a Router. In this blog post, we’ll explore What is ONU, What Is Router, ONU & Router’s main usage, and What is the difference between ONU and Router. Let’s take a closer look !
Part I. Meaning of...
|
by: Oralloy |
last post by:
Hello folks,
I am unable to find appropriate documentation on the type promotion of bit-fields when using the generalised comparison operator "<=>".
The problem is that using the GNU compilers, it seems that the internal comparison operator "<=>" tries to promote arguments from unsigned to signed.
This is as boiled down as I can make it.
Here is my compilation command:
g++-12 -std=c++20 -Wnarrowing bit_field.cpp
Here is the code in...
| |
by: Hystou |
last post by:
Overview:
Windows 11 and 10 have less user interface control over operating system update behaviour than previous versions of Windows. In Windows 11 and 10, there is no way to turn off the Windows Update option using the Control Panel or Settings app; it automatically checks for updates and installs any it finds, whether you like it or not. For most users, this new feature is actually very convenient. If you want to control the update process,...
|
by: tracyyun |
last post by:
Dear forum friends,
With the development of smart home technology, a variety of wireless communication protocols have appeared on the market, such as Zigbee, Z-Wave, Wi-Fi, Bluetooth, etc. Each protocol has its own unique characteristics and advantages, but as a user who is planning to build a smart home system, I am a bit confused by the choice of these technologies. I'm particularly interested in Zigbee because I've heard it does some...
|
by: isladogs |
last post by:
The next Access Europe User Group meeting will be on Wednesday 1 May 2024 starting at 18:00 UK time (6PM UTC+1) and finishing by 19:30 (7.30PM).
In this session, we are pleased to welcome a new presenter, Adolph Dupré who will be discussing some powerful techniques for using class modules.
He will explain when you may want to use classes instead of User Defined Types (UDT). For example, to manage the data in unbound forms.
Adolph will...
|
by: conductexam |
last post by:
I have .net C# application in which I am extracting data from word file and save it in database particularly. To store word all data as it is I am converting the whole word file firstly in HTML and then checking html paragraph one by one.
At the time of converting from word file to html my equations which are in the word document file was convert into image.
Globals.ThisAddIn.Application.ActiveDocument.Select();...
|
by: adsilva |
last post by:
A Windows Forms form does not have the event Unload, like VB6. What one acts like?
|
by: 6302768590 |
last post by:
Hai team
i want code for transfer the data from one system to another through IP address by using C# our system has to for every 5mins then we have to update the data what the data is updated we have to send another system
| |
by: bsmnconsultancy |
last post by:
In today's digital era, a well-designed website is crucial for businesses looking to succeed. Whether you're a small business owner or a large corporation in Toronto, having a strong online presence can significantly impact your brand's success. BSMN Consultancy, a leader in Website Development in Toronto offers valuable insights into creating effective websites that not only look great but also perform exceptionally well. In this comprehensive...
| |