Important: Please read the Qt Code of Conduct -


  • Autocomplete - the most important keystroke in Qt, and it's CTRL and Spacebar

    If I type QAudi

    The autocomplete kicks in and I select QAudioDeviceInfo

    If I append a semicolon "(" and do ctrl + spacebar, I get the "dropdown-ish" menu with the constructor options.

    Once I have selected my Option with the up/down arrows, HOW do I then get the autocomplete to fill in the fields?

  • Lifetime Qt Champion

    Ehh, you expect it to guess what parameters you want to use for
    a constructor ?
    It cant possible do that.
    Say for a QWidget, its (QWidget *parent ) and most other elements in the app would be
    an possible choice so im not sure why you expect it to auto fill the parameters.

  • @mrjj


    0_1517424503293_Screenshot (21).png

    Just an example, first one I could find. You see it has parameter fields. It doesn't autocomplete like "connect" for instance.

  • Lifetime Qt Champion

    Oh, it sounds like something i have not seen before. exciting :)
    Can you tell me what i do wrongly ?
    alt text

  • @mrjj deleted bad info

  • Lifetime Qt Champion

    After selecting ReadData and pressing return only gives me
    alt text

    Im wondering if you use other code-model than i do ?
    or newer Creator than 4.5.0 ?

  • No, I'm a dipshit. I have two machines open, Win 10 and Ubuntu on Laptop. Sorry.

    It's ctrl+spacebar to insert/autocomplete, not return like I just said. And it works on both windows and linux.

    I can't get the autocomplete to work on this kind of selection, just the Function is inserted with an empty parameter field and often there are half dozen parameters.

    alt text

  • Lifetime Qt Champion

    Hehe, well im deepship too ;)
    I cant get it to fill in parameters at all

  • Moderators

    I don't think that is possible.

    If it is, I would like to know, but I think its more intended as a help for you to choose the varibale.
    For example if your write your function body, the popup is below the curser and can be inserted with pressing enter. In your example the popup is above the curser. Coincidence? Unlikely

    After all you shouldn't call functions with class/Type/unit identifiers as part of the arguments.

  • @Ian-Bray, @mrjj

    I don't use Qt Creator, but I do use auto-completers in other IDEs, which I assume work similarly.

    I still don't get just what either of you are expecting to happen? When it comes to the available parameters/overloads to a function call, the completers cannot know what you want to actually pass. The overloads they show you are purely for your information, so you can see what the number & types of arguments are. You do not "pick" anything at this point, and it does not "fill in" anything at this point either. You type in whatever you want to pass (which itself will give autocomplete, but nothing to do with the function declaration), and sometimes they recognise purely by number of parameters which overload you are selecting as you type the comma at the end of each parameter. They often mark what they think the parameter is that you have reached by highlighting that in bold in the list of parameters. If what you are expecting is that it will paste the formal parameters into the call, they don't, what would be the point? That's it for auto-complete! In my experience.

  • Lifetime Qt Champion

    Well it sounds like poster can make it fill in
    parameters even i never seen it or can make it do it.
    As my first post indicates im also very skeptical about completion on the parameters but
    it sounds like poster can make it do it some types so hence im still trying.

  • @mrjj
    I don't follow you. Neither of his 2 screenshots show any "filling in", they show possible parameters in a "pop-up tooltip", like I said that's all?

    If you think about it, what (I think) you/he are asking is, in that example, for it to offer every single literal/variable/function retuning type QMargins. It won't do this. Plus, you could have an unknown number of objects etc. which happen to have a member or function of type QMargins too. so it would have to offer every object which "might lead to" a QMargins as the start of the completion. It won't do that either!

  • Lifetime Qt Champion

    There is no picture of poster's idea of auto filled parameters.
    So either poster want something that is impossible or
    something i dont understand/have seen.

    like ". It doesn't autocomplete like "connect" for instance."

    i cant connect to auto complete in any way.

  • @mrjj
    Like I said, that's because the parameters are not supposed to be "auto-completable", they are there only as a "tooltip" to help you understand the types/overloads available, not as a "picker"/"paster"!

  • Moderators

    QObject::connect has indeed an autocomplete function

    Right after the class Reference (Qt5 Syntax) MyClass:: and right after the signal or slot macro(Qt4 Syntax)

    QT4Syntax actually fills in the argument Types

  • Lifetime Qt Champion

    ah, in that way. well i didnt think of it as parameters filling. just suggestion for context as it can do anywhere.
    Ok, that concludes the post :)
    Not possible.

  • Lifetime Qt Champion

    Hi, Yes im fully aware of that but poster had completion working (he said)
    Just trying to determine what poster saw.
    And i fully agree, auto filling of parameters sounded really fishy :)

  • @mrjj Crikey.

    I want to type for instance ProgressBar::paintEvent(QPaintEvent *event)

    I type Prog autocomplete pops up, I hit return yay ProgressBar

    Then I type :: and autocomplete kicks in again, I make my selection and hit return Now I have
    ProgressBar::paintEvent. and the Parameter List is offered in a little floating box. and ctrl+spacebar inserts it.

    Now I have ProgressBar::paintEvent(QPaintEvent *event)

    Didn't mean to start a fire or anything!

  • Lifetime Qt Champion

    Oh, no fires here. Just a bit confusion :)
    Now i understand.
    There you select a member and yes then it inserts the complete signature ( meaning with the parameters)
    as it can see how it should be from the .h file.

    How ever when shows
    alt text
    It shows possible parameters and u must type variable names as its a function call

    As far as i know, there is no key to have it paste the signature in such cases. :(
    But you can press F2 on the method name to go there and then copy the signature.

  • @mrjj

    If I type QColor and then a semi-colon "("

    I get a menu popup with 11 options. Using the up/down keys I scroll to number 3 and hit return to insert, but the carriage returns and ctrl + spacebar just resets it to the first option.

  • Lifetime Qt Champion

    Hmm, you should get what u select in drop-down. sounds odd.
    Like this ?
    alt text

  • @mrjj No QColor(

  • Lifetime Qt Champion

    alt text

    You cannot make it paste that into editor. (in this case, QRgb64 rgba64)

  • @mrjj Yes. I know. I was wondering if there was an exotic keystroke to insert it. See my first post!!
    Tell them to fix it so it does insert! :-) I hold Q_PROPERTY up as an example.

    Especially connect()

  • Lifetime Qt Champion

    You are the first ever to ask for that.
    Can i ask why you want that text since it just lists possible parameters?
    You would have to replace it with a variable anyways ?

    For connect you want it to paste something lie
    alt text

    Would be like
    connect( const typename QtPrivate::FunctionPointer<Func1>::Object *sender, Func1 signal, const QObject *context, Func2 slot,Qt::ConnectionType type = Qt::AutoConnection)
    Im not sure i understand why :)

  • @mrjj What I would do is insert it, and comment it out, and use it as a guide for my own connect or if it was close I'd just edit the necessary bits.

  • Lifetime Qt Champion

    ok, i see :)
    You can open a request on
    and if enough people vote for it, they might create such feature.

    In the mean time, you can
    ctrl+alt+left click the connect and
    it opens a split view where you can copy from.

  • @mrjj No, I wouldn't consider it a bug as such. It would be a convenience, that's all. I'm still learning Qt and I'm amazed by the hidden stuff. Click inside a class definition say - class myclass : public qobject {} and hit ctrl+spacebar and it throws up all the functions from the inherited class, I only found that recently. Or type "class" and hit ctrl+spacebar gives you a menu, which autocompletes a class from QObject or QWidget.

    If all things were treated equally.

  • Lifetime Qt Champion

    Oh, not. its not that way. One can also report feature wishes there.
    Its perfectly normal.

    There are many hidden features. Tons in right click and Refactor menu. depends on where u stand.
    If it shows a little yellow lamp when you change parameters, press alt + enter to apply same change to the .h file ( or cpp if in .h)

  • @Ian-Bray

    If all things were treated equally.

    All same things are treated equally, but different things are not treated as same.

    I tried to explain above that, say in the case of the completion offered for a call to a function, completion is for (what are called) "actual" parameters but not for "formal" parameters (you might like to look these words up to understand the difference).

    Note that in all the examples you give of where completion is offered, if you select one of the offerings what you end up with is syntactically correct. OTOH, if it did what you are asking for what you end up with would be syntactically incorrect (because you'd have pasted a formal parameter list where an actual parameter list is required). If you try typing in one of the completions you'd like to be selectable, you'll see you get loads of squigglies for incorrect syntax.

    You're asking for apples and oranges to be treated "equally", and all fruits are not equal :)

    For the record, MS Visual Studio, for example, does the same "tooltip-but-not-select-paste" principle in the same situation, so the Qt Creator IDE is not unusual in this respect.

Log in to reply