PDA

View Full Version : Applying fonts to QListWidgetItems



L.Marvell
6th May 2006, 13:47
I begin thinking to revert to Qt4.0.1...
There is QListWidget in my application that contains font list of system. Every item must represent name and look of font. In Windows all is Ok but under Linux most of items draw with standard font.

void settingsDialogImpl::createFamiliesList()
{
QFontDatabase fontDatabase;
ui.familiesList->addItems(fontDatabase.families());
for (int i = 0; i < ui.familiesList->count(); ++i) {
ui.familiesList->item(i)->setFont(QFont(ui.familiesList->item(i)->text()));
if (ui.familiesList->item(i)->text() == currentSettings->font.family()) {
ui.familiesList->setCurrentRow(i);
}
}
}

wysota
6th May 2006, 21:07
Maybe there is something wrong with the font subsystem? Have you checked that all those fonts are available in non-Qt applications?

dimitri
7th May 2006, 13:45
I begin thinking to revert to Qt4.0.1...
Why? Does this work with Qt 4.0.1? Which version are you currently using?

Try debugging a little bit what happens in this code. For example change to:

void settingsDialogImpl::createFamiliesList()
{
QFontDatabase fontDatabase;
ui.familiesList->addItems(fontDatabase.families());
for (int i = 0; i < ui.familiesList->count(); ++i) {
QFont font(ui.familiesList->item(i)->text());
qDebug() << i << font.family();
ui.familiesList->item(i)->setFont(font);
if (ui.familiesList->item(i)->text() == currentSettings->font.family()) {
ui.familiesList->setCurrentRow(i);
}
}
}

L.Marvell
8th May 2006, 11:01
Maybe there is something wrong with the font subsystem? Have you checked that all those fonts are available in non-Qt applications?
Yes, all fonts are available.

L.Marvell
8th May 2006, 11:04
Why? Does this work with Qt 4.0.1? Which version are you currently using?

Yes, it worked well with 4.0.1. Now I'm using 4.1.2.


Try debugging a little bit what happens in this code. For example change to:

void settingsDialogImpl::createFamiliesList()
{
QFontDatabase fontDatabase;
ui.familiesList->addItems(fontDatabase.families());
for (int i = 0; i < ui.familiesList->count(); ++i) {
QFont font(ui.familiesList->item(i)->text());
qDebug() << i << font.family();
ui.familiesList->item(i)->setFont(font);
if (ui.familiesList->item(i)->text() == currentSettings->font.family()) {
ui.familiesList->setCurrentRow(i);
}
}
}
Ok, will try.