• 4085阅读
  • 7回复

关于表格数据显示 [复制链接]

上一主题 下一主题
离线tinglan
 

只看楼主 倒序阅读 楼主  发表于: 2008-08-02
— 本帖被 XChinux 执行加亮操作(2008-08-02) —
我在主窗口中,建立一个表格,点击按钮,想要在弹出的另一个窗体或对话框中能预览表格中的数据,我的代码如下:
tableData::tableData(QWidget *parent, const char *name)
    :Form1(parent, name)
{
    int i=table1->numRows();
    int j=table1->numCols();
    for(int a=0;a<i;a++)
        for(int b=0;b<j;b++)
        {
            table1->setText(a,b,QString::number(a+b));
        }
}

//打印
void tableData::pushButton2_clicked()
{
    QDialog *dialog=new QDialog(this);
    if(dialog->exec()==QDialog::Accepted)
    {    int i=table1->numRows();
        int j=table1->numCols();
        QTable *table=new QTable(i,j,this);
        for(int a=0;a<i;a++)
        for(int b=0;b<j;b++)
            {
                table->setText(a,b,table1->text(a,b));
            }
    }
}

dialog弹出来了,但是空的,并没实现显示数据的功能,请问是怎么回事?该如何修改?
[ 此贴被tinglan在2008-08-04 12:43重新编辑 ]
离线blusherbear

只看该作者 1楼 发表于: 2008-08-02
void tableData::pushButton2_clicked()
{
    QDialog *dialog=new QDialog(this);
    if(dialog->exec()==QDialog::Accepted)
    {    int i=table1->numRows();
        int j=table1->numCols();
        QTable *table=new QTable(i,j,this);
        for(int a=0;a<i;a++)
        for(int b=0;b<j;b++)
            {
                table->setText(a,b,table1->text(a,b));
            }
    }
}
这样是不行的,你弹出的是QDialog,里面当然什么都没有。你要做的是创建一个自己的对话框类MyDialog : public QDialog,QTableWidget作为MyDialog 的一个成员变量,然后在MyDialog 的构造函数中对table进行操作显示。
离线tinglan

只看该作者 2楼 发表于: 2008-08-02
谢谢楼上的指点!但是创造的Mydialog中,如何引用窗体中的数据?
table->setText(a,b,table1->text(a,b));中的table1在此就会未定义的使用。
[ 此贴被tinglan在2008-08-02 12:40重新编辑 ]
离线blusherbear

只看该作者 3楼 发表于: 2008-08-02
table1是在主窗口中定义的吧?
那就在Mydialog的构造函数中引入一个参数,将要引用的参数传给Mydialog即可。
离线tinglan

只看该作者 4楼 发表于: 2008-08-02
先谢过了!
能否再具体一点,用代码怎么实现?
本人菜鸟一个,还希望多多指点!
离线tinglan

只看该作者 5楼 发表于: 2008-08-04
大家帮忙想想办法该怎么实现?
离线blusherbear

只看该作者 6楼 发表于: 2008-08-04
Qt带的例子中有相关的示范。
离线tinglan

只看该作者 7楼 发表于: 2008-08-04
本人刚接触QT,对里边的内容不是很熟悉,能不能指点一下具体是哪个例子?
快速回复
限100 字节
 
上一个 下一个