• 7988阅读
  • 8回复

[讨论]新手,不会用QToolButton。。。 [复制链接]

上一主题 下一主题
离线mimixi666
 
只看楼主 倒序阅读 楼主  发表于: 2012-06-28
关键词: QToolButton
我想单击它,然后隐藏,再单击就显示 ,像QQ一样。。。应该用那个信号??在线等。。。
代码:
#ifndef CHATINTERFACE_H
#define CHATINTERFACE_H

#include <QtGui>
class ChatInterface:public QToolBox
{
    Q_OBJECT
public:
    ChatInterface(QWidget *parent = 0,Qt::WindowFlags f = 0);
    QToolButton *toolButton1_1;
    QToolButton *toolButton1_2;
    QToolButton *toolButton1_3;
    QToolButton *toolButton1_4;
    QToolButton *toolButton2_1;
    QToolButton *toolButton2_2;
    QToolButton *toolButton2_3;
    QToolButton *toolButton3_1;
    QToolButton *toolButton3_2;
public slots:
    void test();
};
#endif // CHATINTERFACE_H





#include "ChatInterface.h"
ChatInterface::ChatInterface(QWidget *parent, Qt::WindowFlags f)
    :QToolBox(parent,f)
{
    setWindowTitle("Hi!! Mixmixi666");
    toolButton1_1 = new QToolButton;
    toolButton1_2 = new QToolButton;
    toolButton1_3 = new QToolButton;
    toolButton1_4 = new QToolButton;
    toolButton2_1 = new QToolButton;
    toolButton2_2 = new QToolButton;
    toolButton2_3 = new QToolButton;
    toolButton3_1 = new QToolButton;
    toolButton3_2 = new QToolButton;

    QGroupBox *myFriends = new QGroupBox();
    toolButton1_1->setIcon(QPixmap("C:\\0.ico"));
    toolButton1_1->setIconSize(QPixmap("C:\\0.ico").size());

    toolButton1_2->setIcon(QPixmap("C:\\2.ico"));
    toolButton1_2->setIconSize(QPixmap("C:\\2.ico").size());

    toolButton1_3->setIcon(QPixmap("C:\\3.ico"));
    toolButton1_3->setIconSize(QPixmap("C:\\3.ico").size());

    toolButton1_4->setIcon(QPixmap("C:\\4.ico"));
    toolButton1_4->setIconSize(QPixmap("C:\\4.ico").size());    

    QGroupBox *strangers = new QGroupBox;
    toolButton2_1->setIcon(QPixmap("C:\\5.ico"));
    toolButton2_1->setIconSize(QPixmap("C:\\5.ico").size());    

    toolButton2_2->setIcon(QPixmap("C:\\6.ico"));
    toolButton2_2->setIconSize(QPixmap("C:\\6.ico").size());    

    toolButton2_3->setIcon(QPixmap("C:\\7.ico"));
    toolButton2_3->setIconSize(QPixmap("C:\\7.ico").size());    

    QGroupBox *badpeople = new QGroupBox;
    toolButton3_1->setIcon(QPixmap("C:\\8.ico"));
    toolButton3_1->setIconSize(QPixmap("C:\\8.ico").size());    

    toolButton3_2->setIcon(QPixmap("C:\\9.ico"));
    toolButton3_2->setIconSize(QPixmap("C:\\9.ico").size());
    //toolButton3_2->setAutoRaise(TRUE);

    QVBoxLayout *vBoxLayout1 = new QVBoxLayout(myFriends);
    vBoxLayout1->addWidget(toolButton1_1);
    vBoxLayout1->addWidget(toolButton1_2);
    vBoxLayout1->addWidget(toolButton1_3);
    vBoxLayout1->addWidget(toolButton1_4);

    QVBoxLayout *vBoxLayout2 = new QVBoxLayout(strangers);
    vBoxLayout2->addWidget(toolButton2_1);
    vBoxLayout2->addWidget(toolButton2_2);
    vBoxLayout2->addWidget(toolButton2_3);

    QVBoxLayout *vBoxLayout3 = new QVBoxLayout(badpeople);
    vBoxLayout3->addWidget(toolButton3_1);
    vBoxLayout3->addWidget(toolButton3_2);

    QString *text1 = new QString("my friends");
    QString *text2 = new QString("strangers");
    QString *text3 = new QString("badpeople");


    addItem( ( QWidget* )myFriends,*text1);
    addItem( ( QWidget* )strangers,*text2);
    addItem( ( QWidget* )badpeople,*text3);


    connect(( QWidget* )myFriends,SIGNAL(clicked()),this,SLOT(test()));

}
void ChatInterface::test()//这个仅仅是测试用的,主要是不知道怎么发送那个信号。。。
{
    QPushButton *pushButton = new QPushButton;
    pushButton->show();
}
离线mimixi666
只看该作者 1楼 发表于: 2012-06-28
自己先顶一下,就是当我点一下myfriend的时候,他会隐藏,再点一下,就会显示。。。
离线largep
只看该作者 2楼 发表于: 2012-06-28
点一次show,再点一次hide,还要什么信号,不都是clicked?
离线mimixi666
只看该作者 3楼 发表于: 2012-06-28
不是,我表达错了。。。
其实是想问第一个参数应该是什么??
  connect(( QWidget* )myFriends,SIGNAL(clicked()),this,SLOT(test()));
离线atmats
只看该作者 4楼 发表于: 2012-06-29
设置属相为hidden应该就没问题了吧?第一个参数的话用你的控件的名字取地址啊
离线淳于半邪

只看该作者 5楼 发表于: 2012-06-29
QtoolBox
离线mimixi666
只看该作者 6楼 发表于: 2012-06-29
回 4楼(atmats) 的帖子
其实主要的是我不知道应该用那个控件??
QtoolBox不行,没反应。。。
你帮我看看程序??
不长应该不会阻你很长时间的,帮我看看。。。谢谢。。谢谢。。。
离线mimixi666
只看该作者 7楼 发表于: 2012-06-29
回 5楼(淳于半邪) 的帖子
我没有定义到QtoolBox这个类,只是由他派生出来而已。。。
怎么办??
离线淳于半邪

只看该作者 8楼 发表于: 2012-07-01
快速回复
限100 字节
 
上一个 下一个