LineEdit Signal
-
Hi All,
Like a pushbutton, can lineEdit have a signal "clicked"
It seems cursorpositionchanged signal(int, int) similiar to clicked signal but this signal works only once.
Suppose, I have a slot to open another widget like a keypad when this signal is emitted. Now this signal "cursorpositionchanged signal(int, int)" opens keypad only once, if I try to do it again it wont. It works again only if I close the prog. and run it again.Dont have any idea about cursorpositionchanged signal(int old, intnew) signal, how to implement it.
Any suggestions
Thanks
-
You can emit "Clicked" signal from lineEdit. Subclass and implement your own signals.
Similarly, there is no "Clicked" signal for QLabel as well. "Here":http://qt-project.org/wiki/Make-a-QLabel-Clickable is the wiki how to make it.
-
Thanks Rahul....
I was just trying to find some other option other than defining own signal.....but I guess this is the only optionanyways ....thanks a lot!!!
-
You're welcome.. Please have a look at the "doc":http://qt-project.org/doc/qt-4.8/qlabel.html#note-139 note.
Also notice
bq. To make sure other funcionality still works, you also need to call the base class implementation of the event.
in the doc note.
-
Okay ...thanks again
:) -
I think I would listen for the focusIn event. For your goal, it sounds like it makes more sense than a clicked signal, as it would also respond to focus changes having other causes (tab key anyone?) than a mouse click.
-
Am not sure about focus event the interface here in my case is a touchscreen
:( -
Your widget still gets focus. And it can still get that in other ways than clicking on it.
-
How ?? Please explain.....
-
It could get focus by code, or by virtue of the focus being pushed away from a control that becomes invisible or disabled, for instance.
-
I implemented the click signal through event filters and it is working fine.
-
Thanks everyone.....:)
-
moderators note: Please don't reply to your own messages (especially after such a short time), edit the previous message instead. You know how that works, as you already edited your followup-up question.
-
:(
Can anyone help me in understanding eventfilters.....I need to implement eventfilters method for two different object but same type again here the slot is different for each object
How to do it?
what to write in installeventfilters()Please help
-
The trick is to check the object argument in your event filter implementation.
However, it sounds like you want to have several widgets that all get the 'clicked' signal. How about you just build a re-usable component instead?
Simply subclass QLineEdit, and add your clicked signal. Implement it the way you like (using an event filter if you want, though I don't think you need it) to emit the clicked signal. Now, simply use your own class instead of QLineEdit where appropriate.
-
I have different LineEdits, which have different slots....so but all should have same signal "click"
-
Do you mean that these line edits should connect to different slots? If so, I stand by my previous advise: actually create your own LineEditWithClickedSignal class (or whatever you want to know it), and use that class instead of QLineEdit. Then, connect the clicked signal to whatever slot you need. Compare how you can connect the clicked signal of different QPushButtons on your form to different slots as well.
-
Yeah I have to connect different Linedit with different slots but signal in each case shall be "click"
Thanks Andre, will follow your advice, this looks much simpler, hope it will be little easy while implementing also.
:)
But still there is 1 more doubt....will it b possible to use my own linedit, when the LineEdit I meant to use is the one from ui_classname.h file?
-
[quote author="pragati" date="1347357263"]But still there is 1 more doubt....will it b possible to use my own linedit, when the LineEdit I meant to use is the one from ui_classname.h file?[/quote]
Yes. Look for widget promotion in the Qt Designer documentation. -
Great!!!
Thanks...