Results 1 to 10 of 10

Thread: How to change the menubar after log in as super user.

Threaded View

Previous Post Previous Post   Next Post Next Post
  1. #1
    Join Date
    Oct 2013
    Posts
    142
    Thanks
    36
    Thanked 3 Times in 3 Posts
    Qt products
    Qt5
    Platforms
    Unix/X11 Windows Android

    Default How to change the menubar after log in as super user.

    Hello, I am writing an app which after the main window shows it has a menubar with the option to connect, with a "super" user which has some adittional menus/actions.
    The thing is that I have different classes for different menubars and another class for creating the dialog.
    The issue is that I cannot figure it out how to actually change the menubar.
    Here is the main window header file:
    Qt Code:
    1. #ifndef CAMER_H
    2. #define CAMER_H
    3.  
    4. #include <QMainWindow>
    5. #include <QSettings>
    6. #include <QDialog>
    7. #include <QDialogButtonBox>
    8. #include <QLabel>
    9. #include <QLineEdit>
    10. #include <QGridLayout>
    11. #include <QPushButton>
    12. namespace Ui {
    13. class camer;
    14. }
    15.  
    16. class camer : public QMainWindow
    17. {
    18. Q_OBJECT
    19.  
    20. public:
    21. explicit camer(QWidget *parent = 0);
    22. ~camer();
    23. void setMeniuAdmin();
    24. void setMeniuNeaut();
    25. private:
    26. Ui::camer *ui;
    27. private slots:
    28. void creareDialogConect();
    29. public slots:
    30. };
    31.  
    32. #endif // CAMER_H
    To copy to clipboard, switch view to plain text mode 

    here is the main window cpp file:
    Qt Code:
    1. #include "camer.h"
    2. #include "conn.h"
    3. #include "FerDialConect.h"
    4. #include "meniuNeautentificat.h"
    5. #include "meniuAdmin.h"
    6. camer::camer(QWidget *parent):QMainWindow(parent){
    7. setMinimumSize(800,600);
    8. setMeniuNeaut();
    9. }
    10.  
    11. camer::~camer()
    12. {
    13. //settings saving function goes here
    14. }
    15.  
    16.  
    17. void camer::creareDialogConect(){
    18. FerDialConect *fdc=new FerDialConect(this);
    19. fdc->afisDial();
    20. }
    21.  
    22. void camer::setMeniuNeaut(){
    23. menNeaut *mn=new menNeaut(this);
    24. setMenuBar(mn);
    25. }
    26.  
    27. void camer::setMeniuAdmin(){
    28. MeniuAdmin *mad=new MeniuAdmin(this);
    29. setMenuBar(mad);
    30. }
    To copy to clipboard, switch view to plain text mode 

    here are the dialog header and cpp files:
    Qt Code:
    1. #ifndef FERDIALCONECT_H
    2. #define FERDIALCONECT_H
    3. #include <QDialog>
    4. #include <QGridLayout>
    5. #include <QLabel>
    6. #include <QLineEdit>
    7. #include <QDialogButtonBox>
    8. #include <QMessageBox>
    9. #include <QPushButton>
    10. #include "camer.h"
    11. class FerDialConect:public camer{
    12. Q_OBJECT
    13. public:
    14. explicit FerDialConect(camer *parent = 0);
    15. void afisDial();
    16. QString util,parola;
    17. private:
    18. QGridLayout *amplasareDialCon,*amplasareDialCon1,*amplasareDialCon2;
    19. QLabel *etUtil,*etPar;
    20. QLineEdit *txtUtil,*txtPar;
    21. QPushButton *bCon,*bAnul;
    22. QDialogButtonBox *cutieButCon;
    23. QDialog *dialogConect;
    24. private slots:
    25. void con();
    26. };
    27.  
    28. #endif // FERDIALCONECT_H
    To copy to clipboard, switch view to plain text mode 

    Qt Code:
    1. #include "FerDialConect.h"
    2. #include "meniuAdmin.h"
    3.  
    4. FerDialConect::FerDialConect(camer *parent):camer(parent){
    5. dialogConect=new QDialog(this);
    6. amplasareDialCon=new QGridLayout;
    7. amplasareDialCon1=new QGridLayout;
    8. amplasareDialCon2=new QGridLayout;
    9. etUtil=new QLabel(tr("Utilizator"));
    10. etPar=new QLabel(tr("Parola"));
    11. txtUtil=new QLineEdit(util);
    12. txtPar=new QLineEdit(parola);
    13. txtPar->setEchoMode(QLineEdit::Password);
    14. cutieButCon=new QDialogButtonBox;
    15. cutieButCon->setOrientation(Qt::Horizontal);
    16. bCon=new QPushButton(tr("Conectare"));
    17. bAnul=new QPushButton(tr("Anulare"));
    18. cutieButCon->addButton(bCon,QDialogButtonBox::AcceptRole);
    19. cutieButCon->addButton(bAnul,QDialogButtonBox::RejectRole);
    20. connect(cutieButCon,SIGNAL(rejected()),dialogConect,SLOT(reject()));
    21. connect(cutieButCon,SIGNAL(accepted()),this,SLOT(con()));
    22. amplasareDialCon->addLayout(amplasareDialCon1,0,0);
    23. amplasareDialCon->addLayout(amplasareDialCon2,1,0);
    24. amplasareDialCon1->addWidget(etUtil,0,0);
    25. amplasareDialCon1->addWidget(txtUtil,0,1);
    26. amplasareDialCon1->addWidget(etPar,1,0);
    27. amplasareDialCon1->addWidget(txtPar,1,1);
    28. amplasareDialCon2->addWidget(cutieButCon,0,0);
    29. }
    30.  
    31. void FerDialConect::afisDial(){
    32. dialogConect->setLayout(amplasareDialCon);
    33. dialogConect->setFixedSize(300,200);
    34. dialogConect->exec();
    35. }
    36.  
    37. void FerDialConect::con(){
    38. util=txtUtil->text();
    39. int marimeUtil=util.size();
    40. parola=txtPar->text();
    41. int marimePar=parola.size();
    42. if(marimeUtil==0 && marimePar!=0){
    43. QMessageBox::critical(this, tr("Eroare"), tr("Campul de utilizator este necompletat."));
    44. return;
    45. }
    46. else if(marimeUtil!=0 && marimePar==0){
    47. QMessageBox::critical(this, tr("Eroare"), tr("Campul de parola este necompletat."));
    48. return;
    49. }
    50. else if(marimeUtil==0 && marimePar==0){
    51. QMessageBox::critical(this, tr("Eroare"), tr("Campurile sunt necompletate."));
    52. return;
    53. }
    54. else {
    55. if(util=="admin" && parola=="camer"){
    56. dialogConect->accept();
    57. camer::setMeniuAdmin();
    58. }
    59.  
    60. }
    61. }
    To copy to clipboard, switch view to plain text mode 

    here is the default menubar files:
    Qt Code:
    1. #ifndef MENIUNEAUTENTIFICAT_H
    2. #define MENIUNEAUTENTIFICAT_H
    3. #include <QMenuBar>
    4. #include <QMenu>
    5. #include <QAction>
    6. #include "camer.h"
    7.  
    8. class menNeaut:public QMenuBar{
    9. Q_OBJECT
    10. public:
    11. explicit menNeaut(camer *parent=0);
    12. private:
    13. QMenu *meniuStandard;
    14. QAction *conectare,*inchideApp;
    15. private slots:
    16. };
    17.  
    18. #endif // MENIUNEAUTENTIFICAT_H
    To copy to clipboard, switch view to plain text mode 

    Qt Code:
    1. #include "meniuNeautentificat.h"
    2. menNeaut::menNeaut(camer *parent):QMenuBar(parent){
    3. meniuStandard=new QMenu("Meniu");
    4. conectare=new QAction(tr("Conectare"),this);
    5. connect(conectare,SIGNAL(triggered()),parent,SLOT(creareDialogConect()));
    6. inchideApp=new QAction(tr("Inchide"),this);
    7. connect(inchideApp,SIGNAL(triggered()),parent,SLOT(inchideApplicatie()));
    8. meniuStandard->addAction(conectare);
    9. meniuStandard->addAction(inchideApp);
    10. addMenu(meniuStandard);
    11. }
    To copy to clipboard, switch view to plain text mode 

    here are the files for the second menu(its just a basic setup):
    Qt Code:
    1. #ifndef MENIUADMIN_H
    2. #define MENIUADMIN_H
    3. #include <QMenuBar>
    4. #include "camer.h"
    5. #include <QMenu>
    6. #include <QAction>
    7.  
    8. class MeniuAdmin:public QMenuBar{
    9. Q_OBJECT
    10. public:
    11. explicit MeniuAdmin(camer *parent=0);
    12. private:
    13. QMenu *meniu;
    14. QAction *dateP;
    15. private slots:
    16. };
    17.  
    18. #endif // MENIUADMIN_H
    To copy to clipboard, switch view to plain text mode 

    Qt Code:
    1. #include "meniuAdmin.h"
    2. MeniuAdmin::MeniuAdmin(camer *parent):QMenuBar(parent){
    3. meniu=new QMenu(tr("Meniu"),this);
    4. dateP=new QAction(tr("Date Personale"),this);
    5. meniu->addAction(dateP);
    6. addMenu(meniu);
    7. }
    To copy to clipboard, switch view to plain text mode 
    Last edited by adutzu89; 20th January 2014 at 14:13.

Similar Threads

  1. Replies: 2
    Last Post: 9th September 2013, 22:12
  2. change image by user
    By smemamian in forum Newbie
    Replies: 1
    Last Post: 10th July 2013, 22:18
  3. Change background color of one menubar item eg Help in blue
    By maulik_887 in forum Qt Programming
    Replies: 5
    Last Post: 9th April 2012, 13:41
  4. change the text colour in Menubar
    By chinmayapadhi in forum Qt Programming
    Replies: 1
    Last Post: 16th August 2010, 01:31
  5. Running shell script with as super user in N900
    By spylvas in forum Qt for Embedded and Mobile
    Replies: 1
    Last Post: 30th April 2010, 01:05

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  
Qt is a trademark of The Qt Company.