Вот код:
void QDialDistParam::setupDialog(QWidget* dialog)
{
for(int k=1; k<reader -> tabs_count; ++k)
distGraphics -> addTab(reader -> getMain() -> tab_widgets[k], QString());
for(int k=0; k<param_vec.size(); ++k)
{
if(!param_vec[k]) continue;
connect(param_vec[k] -> chkParamName, SIGNAL(clicked()), this, SLOT(chkParamNameClick()));
connect(param_vec[k] -> btnColor, SIGNAL(clicked()), this, SLOT(btnColorClick()));
}
}
void QDialDistParam::btnColorClick()
{
QColor color = QColorDialog::getColor();
if(!color.isValid()) return; ///< если нажали Cancel
QString color_name = color.name();
QPushButton* btnClr = qobject_cast<QPushButton*> (sender());
QString style_sheet = "* { background-color: ";
style_sheet += color_name;
style_sheet += " }";
btnClr -> setStyleSheet(style_sheet);
}
/// Класс диалогового окна параметров по расстоянию
class QDialDistParam: public QDialog, public Ui::distParams
{
Q_OBJECT
/// другие объявления
public:
QVector<DIALPARAM*> param_vec; ///< вектор параметров окна
GraphicDisplay* graphic; ///< указатель на диалог с графиком
}
void TLV::dtDialogFill()
{
dlgDist.setupDialog(this);
dlgTime.setupDialog(this);
}