Salutations à tous,QT séparateur widget?
Y a-t-il un widget pour séparer deux QWidgets et aussi donner un focus complet à un widget. Comme le montre la figure suivante?
Merci à l'avance, umanga
Salutations à tous,QT séparateur widget?
Y a-t-il un widget pour séparer deux QWidgets et aussi donner un focus complet à un widget. Comme le montre la figure suivante?
Merci à l'avance, umanga
Que diriez-vous? QSplitter
QWidget 1, par exemple, QListView
. QWidget 2 est une combinaison de QWidget
s (la partie gauche est simple QPushButton
avec la légende afficher/masquer, et la partie droite un autre widget) ... Tout ce que vous avez à faire est de cacher votre QWidget2 lorsque l'utilisateur clique sur QPushButton
. ..
Si vous avez besoin d'un exemple, je peux le poster.
Mise à jour
main.cpp
#include "splitter.h"
#include <QtGui/QApplication>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
splitter w;
w.show();
return a.exec();
}
splitter.h
#ifndef SPLITTER_H
#define SPLITTER_H
#include <QtGui/QDialog>
class splitter : public QDialog
{
Q_OBJECT;
QWidget* widget1;
QWidget* widget2;
QPushButton* button;
public:
splitter(QWidget *parent = 0, Qt::WFlags flags = 0);
~splitter();
private slots:
void showHide(void);
};
#endif // SPLITTER_H
splitter.cpp
#include <QtGui>
#include "splitter.h"
splitter::splitter(QWidget *parent, Qt::WFlags flags)
: QDialog(parent, flags)
{
QApplication::setStyle("plastique");
QListView* listView = new QListView;
QTableView* tableView = new QTableView;
button = new QPushButton("Hide >");
widget1 = new QWidget;
QHBoxLayout* w1Layout = new QHBoxLayout;
w1Layout->addWidget(listView);
w1Layout->addWidget(button);
widget1->setLayout(w1Layout);
widget2 = new QWidget;
QHBoxLayout* w2Layout = new QHBoxLayout;
w2Layout->addWidget(tableView);
widget2->setLayout(w2Layout);
QSplitter *mainSplitter = new QSplitter(this);
mainSplitter->addWidget(widget1);
mainSplitter->addWidget(widget2);
connect(button, SIGNAL(clicked()), this, SLOT(showHide()));
QVBoxLayout *mainLayout = new QVBoxLayout;
mainLayout->addWidget(mainSplitter);
setLayout(mainLayout);
}
splitter::~splitter()
{}
void splitter::showHide(void)
{
if (widget2->isVisible())
{ // hide
widget2->setVisible(false);
button->setText("< Show");
}
else
{ // show
widget2->setVisible(true);
button->setText("Hide >");
}
}
merci mogs, voulez-vous dire que j'utilise un QSplitter comme le widget en couleur bleu foncé? –
Ce serait génial si vous pouvez poster un example.thanks –
J'ai ajouté un code simple à titre d'exemple. – mosg
merci mosg pour votre temps. Vous avez sauvé ma journée! –