Qt 4.3.2: QDialog, Help-Button



  • Hallo,

    ich habe eine Dialog-Klasse erstellt, die von QDialog abgeleitet ist. Jetzt bekommt mein Dialog oben in der Title-Bar immer den Help-Button (das '?'), den brauche ich aber nicht. Das setzen von den Window-Flags hat nichts gebracht.
    Wie werde ich den blöden Hilfe-Button los?

    Gruß
    void *



  • Hallo, etwas Code wäre von Vorteil zeig doch mal wie du die neue Klasse in deine .h Datei definierst und dann noch die zugehörige .cpp Datei. Was auch noch gut wäre wenn mir den Code zeigst wie du das Object verwendest/deklarierst.



  • Hi,

    sorry, hat eine Weile gedauert.

    Hier der Code...

    *.hpp:

    namespace gui
    	{
    		/**
    			\ingroup gui
    		*/
    		class t_login_dialog : public QDialog
    		{
    		public:
    			t_login_dialog( QWidget *p_parent );
    			~t_login_dialog();
    
    			QString get_user_name() const;
    			QString get_password() const;
    
    		private:
    			void create_widgets();
    			void set_visual_style();
    			void create_layout();
    			void connect_signals_and_slots();			
    
    			QHBoxLayout *m_user_name_layout;
    			QLabel *m_user_name_label;
    			QLineEdit *m_user_name_edit;
    			QHBoxLayout *m_password_layout;
    			QLabel *m_password_label;
    			QLineEdit *m_password_edit;
    			QDialogButtonBox *m_button_box;
    		};
    	}
    

    *.cpp:

    #include "login_dialog.hpp"
    
    using namespace gui;
    
    t_login_dialog::t_login_dialog( QWidget *p_parent ):
    	QDialog( p_parent )
    {	
    	create_widgets();	
    	set_visual_style();
    	create_layout();
    	connect_signals_and_slots();	
    }
    
    t_login_dialog::~t_login_dialog()
    {
    	// nothing to do...
    }
    
    QString t_login_dialog::get_user_name() const
    {
    	return m_user_name_edit->text();
    }
    
    QString t_login_dialog::get_password() const
    {
    	return m_password_edit->text();
    }
    
    void t_login_dialog::create_widgets()
    {
    	m_user_name_label = new QLabel();			
    	m_user_name_edit = new QLineEdit();	
    
    	m_password_label = new QLabel();			
    	m_password_edit = new QLineEdit();
    
    	m_button_box = new QDialogButtonBox( QDialogButtonBox::Ok | QDialogButtonBox::Cancel );
    }
    
    void t_login_dialog::set_visual_style()
    {
    	setWindowTitle( "Login" );	
    	m_user_name_label->setText( "User name" );
    	// \todo remove magical constant
    	m_user_name_edit->resize( 200, m_user_name_edit->height() );
    	m_user_name_edit->setSizePolicy( QSizePolicy::Fixed, QSizePolicy::Fixed );
    	m_password_label->setText( "Password" );	
    	// \todo remove magical constant
    	m_password_edit->resize( 200, m_password_edit->height() );
    	m_password_edit->setSizePolicy( QSizePolicy::Fixed, QSizePolicy::Fixed );
    	m_password_edit->setEchoMode( QLineEdit::Password );
    }
    
    void t_login_dialog::create_layout()
    {
    	m_user_name_layout = new QHBoxLayout();
    	m_user_name_layout->addWidget( m_user_name_label );
    	m_user_name_layout->addStretch();
    	m_user_name_layout->addWidget( m_user_name_edit );
    
    	m_password_layout = new QHBoxLayout();
    	m_password_layout->addWidget( m_password_label );
    	m_password_layout->addStretch();
    	m_password_layout->addWidget( m_password_edit );
    
    	QVBoxLayout *main_layout = new QVBoxLayout();
    	main_layout->addLayout( m_user_name_layout );
    	main_layout->addLayout( m_password_layout );
    	main_layout->addWidget( m_button_box );
    	setLayout( main_layout );
    }
    
    void t_login_dialog::connect_signals_and_slots()
    {
    	connect( m_button_box, SIGNAL( accepted() ), this, SLOT( accept() ) );
    	connect( m_button_box, SIGNAL( rejected() ), this, SLOT( reject() ) );
    }
    


  • Du meinst das ? neben dem Minimieren, Maximieren und Schliessen Button?

    Dann schau hier:
    http://lists.trolltech.com/qt-interest/2006-03/msg00937.html

    Und teste windowflags:

    Dialog
    Customize window



  • Danke, jetzt hat es Bestens funktioniert mit:

    Qt::Dialog| Qt::WindowTitleHint | Qt::CustomizeWindowHint
    

Anmelden zum Antworten