• 6950阅读
  • 10回复

如何在ToolButton的clicked()事件发生时将ToolButton.text()传到对应的SLOT槽方法中 [复制链接]

上一主题 下一主题
离线caichao07
 

只看楼主 倒序阅读 楼主  发表于: 2009-12-30
如何在ToolButton的clicked()事件发生时
将ToolButton.text()传到对应的SLOT槽方法中
请教,谢谢!
离线dbzhang800

只看该作者 1楼 发表于: 2009-12-30
转换下思路

在你的槽函数内,找到触发该槽的信号所属的对象,然后根据需要调用其成员
离线午小夜

只看该作者 2楼 发表于: 2009-12-30
寫個 signals: void transferText(QString text).
在clicked槽裏面  emit transferText(ToolButton.text());
把這個信號綁定你要接收的槽。
[操作系统版本]  Windows XP;Linux Ubuntu;Linux Fedora;
[Qt SDK版本]    4.7.0
[SDK 发布日期]  2010.05
[IDE(集成开发环境)] QtCreator
个人网页:http://hi.baidu.com/午小夜
學歷:Royal Jalidon
离线yangfanxing
只看该作者 3楼 发表于: 2009-12-30
没明白。。。
我怎么觉得连接好了之后在槽函数里调用控件的text()就可以了???
PHPWind好恶心。。。不想看这种界面。。。
离线caichao07

只看该作者 4楼 发表于: 2009-12-30
void MainWin :: newParticipant(const QString &nick)
{
    if (nick.isEmpty())
        return;

    QToolButton *toolButton=new QToolButton(groupBox1);
    toolButton->setText(nick);
    toolButton->setAutoRaise(TRUE);
    toolButton->setToolButtonStyle(Qt::ToolButtonTextOnly);
    layout1->addWidget(toolButton);
    toolButtons.insert(nick, toolButton);
    connect(toolButton, SIGNAL(clicked()), this, SLOT(slotTalkWin() ));
}

我想将nick传到slotTalkWin()方法中,但是如果离开了newParticipant这个方法就找不到toolButton对象了,
我是采用动态创建对象的
离线dbzhang800

只看该作者 5楼 发表于: 2009-12-30
引用第4楼caichao07于2009-12-30 16:02发表的  :
void MainWin :: newParticipant(const QString &nick)
{
    if (nick.isEmpty())
        return;
.......


打开 assistant,
看该函数的 manual
QObject * QObject::sender () const
离线caichao07

只看该作者 6楼 发表于: 2009-12-30
引用第5楼dbzhang800于2009-12-30 16:07发表的  :
打开 assistant,
看该函数的 manual
QObject * QObject::sender () const


我看了,还是不太明白里面你所说的意思,能详细说一下是怎么解决吗,谢谢!
离线caichao07

只看该作者 7楼 发表于: 2009-12-30
是不是说槽函数里调用sender()可以获取到toolButton对象的指针
离线dbzhang800

只看该作者 8楼 发表于: 2009-12-30
引用第7楼caichao07于2009-12-30 16:30发表的  :
是不是说槽函数里调用sender()可以获取到toolButton对象的指针


离线caichao07

只看该作者 9楼 发表于: 2009-12-30
问题解决了,多谢指教!!!
离线xiaobinl989

只看该作者 10楼 发表于: 2010-03-31
如何解决的,贴出源码来看看好吗?
有斗志的小笔是无敌的。
快速回复
限100 字节
 
上一个 下一个