Странно создал в Qt дизайнере форму с двумя TableView и кнопку, которая бы показывала и скрывала сетку. Сетка по умолчанию включена (showGrid = true), однако после компиляции и запуска программы не в одном из TableView сетки нет, просто белые квадраты.
Вот ui_untitled.h:
/********************************************************************************
** Form generated from reading ui file 'untitled.ui'
**
** Created: Sun Oct 26 12:29:03 2008
** by: Qt User Interface Compiler version 4.3.3
**
** WARNING! All changes made in this file will be lost when recompiling ui file!
********************************************************************************/
#ifndef UI_UNTITLED_H
#define UI_UNTITLED_H
#include <QtCore/QVariant>
#include <QtGui/QAction>
#include <QtGui/QApplication>
#include <QtGui/QButtonGroup>
#include <QtGui/QPushButton>
#include <QtGui/QTableView>
#include <QtGui/QWidget>
class Ui_Form
{
public:
QTableView *tableView;
QTableView *tableView_2;
QPushButton *pushButton;
void setupUi(QWidget *Form)
{
if (Form->objectName().isEmpty())
Form->setObjectName(QString::fromUtf8("Form"));
Form->resize(580, 305);
Form->setBaseSize(QSize(5, 5));
tableView = new QTableView(Form);
tableView->setObjectName(QString::fromUtf8("tableView"));
tableView->setGeometry(QRect(20, 70, 256, 192));
tableView_2 = new QTableView(Form);
tableView_2->setObjectName(QString::fromUtf8("tableView_2"));
tableView_2->setGeometry(QRect(300, 70, 256, 192));
pushButton = new QPushButton(Form);
pushButton->setObjectName(QString::fromUtf8("pushButton"));
pushButton->setGeometry(QRect(250, 20, 75, 23));
retranslateUi(Form);
QObject::connect(pushButton, SIGNAL(clicked(bool)), tableView, SLOT(setShowGrid(bool)));
QObject::connect(pushButton, SIGNAL(clicked(bool)), tableView_2, SLOT(setShowGrid(bool)));
QMetaObject::connectSlotsByName(Form);
} // setupUi
void retranslateUi(QWidget *Form)
{
Form->setWindowTitle(QApplication::translate("Form", "Form", 0, QApplication::UnicodeUTF8));
pushButton->setText(QApplication::translate("Form", "PushButton", 0, QApplication::UnicodeUTF8));
Q_UNUSED(Form);
} // retranslateUi
};
namespace Ui {
class Form: public Ui_Form {};
} // namespace Ui
#endif // UI_UNTITLED_H
#include <QApplication>
#include <QDialog>
#include "ui_untitled.h"
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
Ui::Form ui;
QDialog *dialog = new QDialog;
ui.setupUi(dialog);
dialog->show();
return app.exec();
}
лучшеб ui-файл положил
А как должно переключение происходить? Ты кнопку не тригерную сделал, а простую, сделай тригерную, чтобы аргумент в сигнале менялся.
Уменя все работает, проверять в дизайнере надо сразу, только вместо представлений, виджеты клади, для проверки.
вот пример, и сигнал переключения использован:
<ui version="4.0" >
<class>Form</class>
<widget class="QWidget" name="Form" >
<property name="geometry" >
<rect>
<x>0</x>
<y>0</y>
<width>538</width>
<height>242</height>
</rect>
</property>
<property name="windowTitle" >
<string>Form</string>
</property>
<layout class="QVBoxLayout" >
<item>
<layout class="QHBoxLayout" >
<item>
<widget class="QTableWidget" name="tableWidget" >
<row>
<property name="text" >
<string>New Row</string>
</property>
</row>
<row>
<property name="text" >
<string>New Row</string>
</property>
</row>
<row>
<property name="text" >
<string>New Row</string>
</property>
</row>
<column>
<property name="text" >
<string>New Column</string>
</property>
</column>
<column>
<property name="text" >
<string>New Column</string>
</property>
</column>
<column>
<property name="text" >
<string>New Column</string>
</property>
</column>
<column>
<property name="text" >
<string>New Column</string>
</property>
</column>
</widget>
</item>
<item>
<widget class="QTableWidget" name="tableWidget_2" >
<row>
<property name="text" >
<string>New Row</string>
</property>
</row>
<row>
<property name="text" >
<string>New Row</string>
</property>
</row>
<row>
<property name="text" >
<string>New Row</string>
</property>
</row>
<column>
<property name="text" >
<string>New Column</string>
</property>
</column>
<column>
<property name="text" >
<string>New Column</string>
</property>
</column>
<column>
<property name="text" >
<string>New Column</string>
</property>
</column>
</widget>
</item>
</layout>
</item>
<item>
<layout class="QHBoxLayout" >
<item>
<spacer>
<property name="orientation" >
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" >
<size>
<width>40</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
<item>
<widget class="QPushButton" name="pushButton" >
<property name="cursor" >
<cursorShape>ArrowCursor</cursorShape>
</property>
<property name="text" >
<string>PushButton</string>
</property>
<property name="checkable" >
<bool>true</bool>
</property>
<property name="checked" >
<bool>true</bool>
</property>
<property name="default" >
<bool>true</bool>
</property>
</widget>
</item>
</layout>
</item>
</layout>
</widget>
<resources/>
<connections>
<connection>
<sender>pushButton</sender>
<signal>toggled(bool)</signal>
<receiver>tableWidget_2</receiver>
<slot>setShowGrid(bool)</slot>
<hints>
<hint type="sourcelabel" >
<x>461</x>
<y>217</y>
</hint>
<hint type="destinationlabel" >
<x>448</x>
<y>173</y>
</hint>
</hints>
</connection>
<connection>
<sender>pushButton</sender>
<signal>toggled(bool)</signal>
<receiver>tableWidget</receiver>
<slot>setShowGrid(bool)</slot>
<hints>
<hint type="sourcelabel" >
<x>477</x>
<y>228</y>
</hint>
<hint type="destinationlabel" >
<x>188</x>
<y>171</y>
</hint>
</hints>
</connection>
</connections>
</ui>
Спасибо, работает!
Форум Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)