2014-01-12 5 views
1

Я хочу динамически созданный интерфейс для моей программы QT + C++ для Hello-world из файла .ini.Qt4 QLabel в QTabWidget

1 Шаг Я прочитал файл настроек с помощью QSettings - это просто.

2 Шаг Я стараюсь рисовать интерфейс:

//i == 5; 
for(int temp=1;temp <= i;temp++){ 
    QString tName = settings.value("/Level" + QString::number(temp) + "/Name", "").toString(); 
    QString tImage = settings.value("/Level" + QString::number(temp) + "/Image", "").toString(); 
    QString Imgpath = QApplication::applicationDirPath() + "/images/" + tImage; 
    QPixmap pix(Imgpath); 
    tab.addTab(new QLabel(Imgpath, &tab), tName); 
} 

Все выглядит великолепно - QLabel содержит FilePath для изображения, заголовок TAB содержит правильное название от INIFILE. НО! Я хочу установитьPixmap() в QLabel, и вот проблема. new QLabel() запрос не имеет имени, которое я могу использовать для установки любой опции. Пожалуйста, помогите мне с этим для() {}

+0

«новый QLabel() запрос не имеет имя, которое я могу использовать, чтобы установить любой вариант» - Что делает это означает? – Shoe

+0

Вы пытаетесь нарисовать значок рядом с именем табуляции или создать виджет вкладки, отображающий изображения на вкладках? – riv

+0

«Что это значит?» - Я имею в виду, что здесь нет 'QLabel lbl();' в этом коде, и я не знаю, где я могу добавить это для использования, тогда 'lbl.setPixmap (LinkToPix);' – Minakov

ответ

1

Вы можете преобразовать это:

QPixmap pix(Imgpath); 
tab.addTab(new QLabel(Imgpath, &tab), tName); 

к:

QLabel* label = new QLabel(Imgpath, &tab); 
label->setPixmap(QPixmap(Imgpath)); 
tab.addTab(label, tName); 
1

Вы можете использовать свойство Pixmap:

pixmap : QPixmap

Это свойство содержит pixmap метки ,

Если нет пиксельного не установлено это вернет 0.

Установки растрового изображения очищает любое предыдущее содержимое. Ярлык приятеля, если он есть, отключен.

Таким образом, вы бы установить растровое изображение на этикетке следующим образом:

//i == 5; 
for (int temp = 1; temp <= i; ++temp) { 
    QString tName = settings.value("/Level" + QString::number(temp) + "/Name", "").toString(); 
    QString tImage = settings.value("/Level" + QString::number(temp) + "/Image", "").toString(); 
    QString Imgpath = QApplication::applicationDirPath() + "/images/" + tImage; 
    QPixmap pix(Imgpath); 
    QLabel *myLabel = new QLabel(Imgpath, &tab); 
    myLabel->setPixmap(pix); 
    tab.addTab(myLabel, tName); 
} 
Смежные вопросы