首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 移动开发 > QT开发 >

关于tablewidget 查询和更新数据(多个窗口),该怎么处理

2013-01-27 
关于tablewidget 查询和更新数据(多个窗口)目前有main.ui main.h main.cpp , a.ui a.h a.cpp, b.ui b.h b.

关于tablewidget 查询和更新数据(多个窗口)
目前有main.ui main.h main.cpp , a.ui a.h a.cpp, b.ui b.h b.cpp. 在a.ui中有tablewidget,编辑按钮。
main窗口通过按钮弹出 A窗口,A窗口通过按钮弹出B窗口,在B窗口中输入数据,点OK按钮后显示到B窗口的tablewidget。有两个问题:
1. 当在B窗口输入数据点OK按钮后,如何判断传过来的数据和tablewidget中已保存的数据是否相同;
2. 当我点击A窗口的编辑按钮时,弹出B窗口并修改数据点OK后更新原来的数据,该如何实现?
如果可以的话请详细点,谢谢!
[解决办法]
1 a中当你弹出b窗口的时候。要记录当前选中的item.
2 b的返回值和a.currentItem.text() 做比较。QVarinat(b.returnValue).toXXX();进行比较咯。
3 得到b的返回数据后更新a.tableWidget.currentItem的text就好了哇?


a.h
class A
{
     
   private slots:
   void upDateTableWidget(QString);
   private: 
     B *m_b;
     QTableWidget *m_tableWidget;
}
a.cpp
A:A()
{
    m_b = new B(XX);
    connect(m_b,SIGNAL(returnValue(QString),this,SLOT(upDateTableWidget(QString)));
}

A:upDateTableWidget(QString value)
{
    if(m_tableWidget)
    {
       m_tableWidget->currentSelectedItem->setText(value);
    }
}

b.h
Class B
{
    

    signals:
    void returnValue(QString);
    private slots:
    void onButtonClicked();
    private:
    m_button;
    m_lineEdit;
}

b.cpp

B:B()
{
    connect(m_button),SIGNAL(clicked()),this,SLOT(onButtonClicked());
    
}

void B:onButtonClicked()
{
    QString strRet = m_lineEdit->text();
    emit returnValue(strRet);
}

类似这种哈。该show的show..改隐藏的隐藏。。Q_OBJECT这些。。没写。只是伪代码哈。

[解决办法]
把信号槽关联好就可以了

热点排行