本文整理汇总了C++中QObjectList::takeFirst方法的典型用法代码示例。如果您正苦于以下问题:C++ QObjectList::takeFirst方法的具体用法?C++ QObjectList::takeFirst怎么用?C++ QObjectList::takeFirst使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类QObjectList
的用法示例。
在下文中一共展示了QObjectList::takeFirst方法的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: setModified
void
DocumentXML::clear()
{
document_.removeChild(document_.documentElement());
setModified(true);
if(!children().isEmpty()) {
QObjectList childList = children();
while(!childList.isEmpty()) {
delete childList.takeFirst();
}
}
}
示例2: adjustAppearanceToOS
// from: http://stackoverflow.com/questions/5298614/change-the-size-of-qt-dialogs-depending-on-the-platform
void MainWindow::adjustAppearanceToOS(QWidget *rootWidget)
{
int fontSize = -1;
#ifdef Q_OS_WIN
fontSize = 8;
#elif __APPLE__
fontSize = 12;
#elif __linux
fontSize = 11;
#endif
if (rootWidget == NULL)
return;
QObject *child = NULL;
QObjectList Containers;
QObject *container = NULL;
QStringList DoNotAffect;
// Make an exception list (Objects not to be affected)
// DoNotAffect.append("widgetName");
// Append root to containers
Containers.append(rootWidget);
while (!Containers.isEmpty())
{
container = Containers.takeFirst();
if (container != NULL)
for (int i = 0; i < container->children().size(); i++)
{
child = container->children()[i];
if (!child->isWidgetType() || DoNotAffect.contains(child->objectName()))
continue;
if (child->children().size() > 0)
Containers.append(child);
// (if the object is not of the correct type, it will be NULL)
QLabel *label = qobject_cast<QLabel *>(child);
if (label != NULL)
{
label->setText(label->text().replace(QRegExp("font-size:.*;"), ""));
QFont font = label->font();
font.setPointSize(fontSize);
label->setFont(font);
}
}
}
}
示例3: children
Item::~Item()
{
// cout << name() << " deleting children" << endl;
if (!children().isEmpty()) {
QObjectList childList = children();
while(!childList.isEmpty() ) {
delete childList.takeFirst();
}
}
// cout << name() << " deleting listviewitem" << endl;
delete treeWidgetItem_;
// Remove the QTreeWidgetItem from the map to Item
itemMap_.erase(treeWidgetItem_);
// cout << name() << " deleting" << endl;
}
示例4: setFields
void XDataWidget::setFields(const XData::FieldList &f)
{
fields_.clear();
// delete all child widgets
QObjectList objlist = queryList();
while (!objlist.isEmpty()) {
delete objlist.takeFirst();
}
QVBoxLayout* vert = new QVBoxLayout(this);
if (!instructions_.isEmpty()) {
QLabel* l = new QLabel(instructions_, this);
l->setWordWrap(true);
l->setTextInteractionFlags(Qt::TextSelectableByMouse|Qt::LinksAccessibleByMouse);
connect(l,SIGNAL(linkActivated(const QString&)),SLOT(linkActivated(const QString&)));
vert->addWidget(l);
}
QWidget *fields = new QWidget(this);
vert->addWidget(fields);
if ( f.count() ) {
QGridLayout *grid = new QGridLayout(fields, 3, f.count(), 0, 3);
int row = 0;
XData::FieldList::ConstIterator it = f.begin();
for ( ; it != f.end(); ++it, ++row) {
XDataField *f;
switch ( (*it).type() ) {
case XData::Field::Field_Boolean:
f = new XDataField_Boolean(*it, grid, row, this);
break;
case XData::Field::Field_Fixed:
f = new XDataField_Fixed(*it, grid, row, this);
break;
case XData::Field::Field_Hidden:
f = new XDataField_Hidden(*it);
break;
case XData::Field::Field_JidSingle:
f = new XDataField_JidSingle(*it, grid, row, this);
break;
case XData::Field::Field_ListMulti:
f = new XDataField_ListMulti(*it, grid, row, this);
break;
case XData::Field::Field_ListSingle:
f = new XDataField_ListSingle(*it, grid, row, this);
break;
case XData::Field::Field_TextMulti:
f = new XDataField_TextMulti(*it, grid, row, this);
break;
case XData::Field::Field_JidMulti:
f = new XDataField_JidMulti(*it, grid, row, this);
break;
case XData::Field::Field_TextPrivate:
f = new XDataField_TextPrivate(*it, grid, row, this);
break;
default:
f = new XDataField_TextSingle(*it, grid, row, this);
}
fields_.append(f);
}
}
}
示例5: GenAdjustWidgetAppearanceToOS
void QtHelpers::GenAdjustWidgetAppearanceToOS(QWidget *rootWidget)
{
if (rootWidget == NULL)
return;
QObject *child = NULL;
QObjectList Containers;
QObject *container = NULL;
QStringList DoNotAffect;
// Make an exception list (Objects not to be affected)
DoNotAffect.append("aboutTitleLabel"); // about Dialog
DoNotAffect.append("aboutVersionLabel"); // about Dialog
DoNotAffect.append("aboutCopyrightLabel"); // about Dialog
DoNotAffect.append("aboutUrlLabel"); // about Dialog
DoNotAffect.append("aboutLicenseLabel"); // about Dialog
// Set sizes according to OS:
#ifdef __APPLE__
int ButtonHeight = 35;
int cmbxHeight = 30;
QFont cntrlFont("Myriad Pro", 14);
QFont txtFont("Myriad Pro", 14);
#elif _WIN32 // Win XP/7
int ButtonHeight = 24;
int cmbxHeight = 20;
QFont cntrlFont("MS Shell Dlg 2", 8);
QFont txtFont("MS Shell Dlg 2", 8);
#else
int ButtonHeight = 24;
int cmbxHeight = 24;
QFont cntrlFont("Ubuntu Condensed", 10);
QFont txtFont("Ubuntu", 10);
#endif
// Append root to containers
Containers.append(rootWidget);
while (!Containers.isEmpty())
{
container = Containers.takeFirst();
if (container != NULL)
{
for (int ChIdx=0; ChIdx < container->children().size(); ChIdx++)
{
child = container->children()[ChIdx];
if (!child->isWidgetType() || DoNotAffect.contains(child->objectName()))
continue;
// Append containers to Stack for recursion
if (child->children().size() > 0)
Containers.append(child);
else
{
// Cast child object to button and label
// (if the object is not of the correct type, it will be NULL)
QPushButton *button = qobject_cast<QPushButton *>(child);
QLabel *label = qobject_cast<QLabel *>(child);
QComboBox *cmbx = qobject_cast<QComboBox *>(child);
QLineEdit *ln = qobject_cast<QLineEdit *>(child);
QTreeWidget *tree = qobject_cast<QTreeWidget *>(child);
QPlainTextEdit *plain = qobject_cast<QPlainTextEdit *>(child);
QCheckBox *check = qobject_cast<QCheckBox *>(child);
if (button != NULL)
{
button->setMinimumHeight(ButtonHeight); // Win
button->setMaximumHeight(ButtonHeight); // Win
button->setFont(cntrlFont);
}
else if (cmbx != NULL)
{
cmbx->setFont(cntrlFont);
cmbx->setMaximumHeight(cmbxHeight);
}
else if (label != NULL)
label->setFont(txtFont);
else if (ln != NULL)
ln->setFont(txtFont);
else if (tree != NULL)
{
tree->header()->setFont(txtFont);
}
else if (plain != NULL)
plain->setFont(txtFont);
else if (check != NULL)
check->setFont(txtFont);
}
}
}
}
}