Important: Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct
Using Customized Dialog Boxes
Hi there, I'm a bit of a noob when it comes to Qt programming, so if I say something extremely revealing of my noviceness, please forgive me.
So I have an application, and so far for all the dialogs I've just been using code directly to make dialogs.
reply = QMessageBox::information(this, tr("QMessageBox::information()"), MESSAGE);
if (reply == QMessageBox::Ok)
However, now I want to use a custom created dialog box when a button is pressed. I'm just not sure how to do it. My main function works something like this:
int main(int argc, char *arg)
QApplication a(argc, argv);
Launcher *w = Launcher::getSingleton();
int ret = a.exec();
My Launcher.h source file's work something like this:
class Launcher : public QMainWindow
Launcher(QWidget *parent = 0, Qt::WFlags flags = Qt::FramelessWindowHint);
static Launcher *getSingleton();
//rest of functions
Anyway from my Launcher.cpp file I want to have a function that when called, will create a new Ui::CustomDialogClass ui; and allow me to use a customized dialog box I've created, but I'm not sure exactly how I should go about doing it as this "public QMainWindow" is used by my Launcher.h and its not really a "QMainWindow" its more of a "QSubWindow". Anyway if someone could point me in the right direction that'd be super awesome. Thanks!
Hi and welcome to devnet,
I would recommend you to go through the examples in the Qt documentation, you'll have a good base to do what you want to achieve.
Thanks for the reply. However, I've been looking through some of the examples. eg: http://qt-project.org/doc/qt-4.8/designer-using-a-ui-file.html
Problem is all of them seem to use widget's. I just want a dialog box, not a widget. Am I confusing what Widget's actually are?
Some sample code looked promising:
QWidget *widget = new QWidget;
widget->show(); return app.exec();
But...I'm not so sure about the QWidget stuff. I thought I just wanted a dialog box, but it doesn't seem to allow me to do that except as a main dialogue. And apparently I can't have more than 1 of those. :(
QDialog is a specialized QWidget, if you need a QDialog, simply use it in place of QWidget. You can also go through the examples given in QDialog's documentation, they'll show you various ways of using it.
So I couldn't figure out how to get QDialog's to work so I just switched to using widgets and then did this:
@ SettingDialogues *object = new SettingDialogues(this);
object->setWindowFlags(Qt::Dialog); //make the object be a dialog
Seems to be the trick, I had to change my ui to a widget in order to get it to work. Hopefully I can figure the process out for Dialog's.
dbzhang800 last edited by
If you find it's hard to understand, maybe a C++ book is useful for you at present.
Well its not really hard to understand c++ itself, I need a Qt specific book :D. I understand c++ well enough, I'm just not use to how Qt works. I'm sure I'll get better at using it, the more I use Qt based stuff.
Regardless, I was able to get it working with QDialog's later today, it was a simple mistake really. I had just initially declared it as a QWidget in my .h file, instead of a QDialog which was causing the problem.
Thanks for y'alls help though.