コード例 #1
0
ファイル: ProjectsWindow.php プロジェクト: ArtMares/pqstudio
 public function __construct()
 {
     parent::__construct();
     $this->iconsPath = c(PQNAME)->iconsPath;
     $openProject = $this->create_button(tr('Open project'), 'open.png', '', false);
     $qwidgetProject = $this->create_button(tr('Qt QWidget application'), 'widget.png', SLOT('new_QWidget_project()'));
     $qmainwindowProject = $this->create_button(tr('Qt QMainWindow application'), 'window.png', SLOT('new_QMainWindow_project()'));
     $consoleProject = $this->create_button(tr('Console application'), 'console.png', '', false);
     $silentProject = $this->create_button(tr('Hidden application'), 'hidden.png', '', false);
     //$label1 = new QLabel($this);
     //$label1->text = tr('Open project');
     $label2 = new QLabel($this);
     $label2->text = tr('New project');
     $label2->styleSheet = 'font-weight:bold;font-size:12px;margin-bottom:4px;margin-left:-2px;';
     $hline = new QFrame($this);
     $hline->frameShape = QFrame::HLine;
     $hline->frameShadow = QFrame::Raised;
     $newProject = new QWidget($this);
     // NewProject name
     $newProjectName_label = new QLabel($newProject);
     $newProjectName_label->text = tr('Project name:');
     $newProjectName_label->styleSheet = 'margin-left:1px;';
     $newProjectName_lineEdit = new QLineEdit($newProject);
     $newProjectName_lineEdit->text = $this->get_def_project_name();
     $newProjectName_lineEdit->setRegExpValidator('[a-zA-Z0-9\\-\\_]*');
     $this->newProjectName_lineEdit = $newProjectName_lineEdit;
     // NewProject FileDialog
     $newProjectFD_label = new QLabel($newProject);
     $newProjectFD_label->text = tr('Create in:');
     $newProjectFD_label->styleSheet = 'margin-left:1px;';
     $newProjectFD_lineEdit = new QLineEdit($newProject);
     $newProjectFD_lineEdit->readOnly = true;
     $newProjectFD_lineEdit->text = $this->get_def_dir();
     $newProjectFD_button = new QPushButton($newProject);
     $newProjectFD_button->text = tr('View...');
     $newProjectFD_button->connect(SIGNAL('clicked()'), $this, SLOT('open_newProjectFD()'));
     // NewProject layout
     $newProject_layout = new QGridLayout();
     $newProject_layout->setMargin(0);
     $newProject_layout->addWidget($newProjectName_label, 0, 0);
     $newProject_layout->addWidget($newProjectName_lineEdit, 0, 1, 1, 2);
     $newProject_layout->addWidget(new QWidget($newProject), 1, 1, 1, 3);
     // Empty widget uses as small spacer
     $newProject_layout->addWidget($newProjectFD_label, 2, 0);
     $newProject_layout->addWidget($newProjectFD_lineEdit, 2, 1);
     $newProject_layout->addWidget($newProjectFD_button, 2, 2);
     $newProject->setLayout($newProject_layout);
     $this->newProjectFD = new QFileDialog();
     $this->newProjectFD_lineEdit = $newProjectFD_lineEdit;
     $emptyw0 = new QWidget($this);
     $emptyw0->minimumHeight = 8;
     $emptyw0->maximumHeight = 8;
     $layout = new QGridLayout();
     $layout->addWidget($openProject, 1, 0, 1, 2);
     $layout->addWidget($hline, 2, 0, 1, 2);
     $layout->addWidget($label2, 3, 0, 1, 2);
     $layout->addWidget($newProject, 4, 0, 1, 2);
     $layout->addWidget($emptyw0, 5, 0, 1, 2);
     $layout->addWidget($qwidgetProject, 6, 0);
     $layout->addWidget($qmainwindowProject, 6, 1);
     $layout->addWidget($consoleProject, 7, 0);
     $layout->addWidget($silentProject, 7, 1);
     $this->minimumWidth = 500;
     $this->windowFlags = Qt::Dialog | Qt::MSWindowsFixedSizeDialogHint;
     $this->setLayout($layout);
     $this->windowTitle = 'PQCreator';
 }
コード例 #2
0
ファイル: PQDesigner.php プロジェクト: ArtMares/pqstudio
 private function createRootItemWidget($property, $object, $tree, $itemIndex)
 {
     $widget = null;
     switch ($property['type']) {
         case 'mixed':
         case 'int':
             $widget = new QLineEdit();
             if (isset($property['value']) && !$defaultPropertiesLoaded) {
                 $widget->text = $property['value'];
             } else {
                 $widget->text = $object->{$property}['property'];
             }
             // set validator if section exists
             if (isset($property['validator'])) {
                 $widget->setRegExpValidator($property['validator']);
             } else {
                 // if property type is `int` and validator section not exists,
                 // then set a default validator for integers
                 if ($property['type'] == 'int') {
                     $widget->setRegExpValidator('[0-9]*');
                 }
             }
             $widget->connect(SIGNAL('textChanged(QString)'), $this, SLOT('setObjectProperty(QString)'));
             break;
         case 'bool':
             $widget = new QCheckBox();
             if (isset($property['value']) && !$defaultPropertiesLoaded) {
                 $widget->checked = $property['value'];
             } else {
                 $widget->checked = $object->{$property}['property'];
             }
             $widget->connect(SIGNAL('toggled(bool)'), $this, SLOT('setObjectProperty(bool)'));
             break;
         case 'combo-list':
             foreach ($property['list'] as $listItemProperty) {
                 $childItemIndex = $tree->addItem($itemIndex, $listItemProperty['title']);
                 $childItemWidget = $this->createRootItemWidget($listItemProperty, $object, $tree, $itemIndex);
                 if ($childItemWidget != null) {
                     $childItemWidget->__pq_property_ = $property['property'];
                     $childItemWidget->__pq_propertyType_ = $property['type'];
                     $childItemWidget->objectName = "__pq_property_combo_" . $property['property'] . "_" . $listItemProperty['property'];
                     $tree->setItemWidget($childItemIndex, 1, $childItemWidget);
                 }
             }
             break;
         case 'combo':
             $widget = new QComboBox();
             if (isset($property['list']) && is_array($property['list'])) {
                 $index = 0;
                 foreach ($property['list'] as $list) {
                     if (isset($list['title']) && isset($list['value'])) {
                         $cPropertyValue = "cPropertyValue_{$index}";
                         $qvalue = "__pq_property_qvalue_{$index}";
                         $widget->addItem($list['title']);
                         $widget->{$cPropertyValue} = $list['value'];
                         $widget->{$qvalue} = $list['qvalue'];
                         if (isset($property['defaultIndex'])) {
                             $widget->currentIndex = $property['defaultIndex'];
                         }
                         $index++;
                     }
                 }
             }
             $widget->connect(SIGNAL('currentIndexChanged(int)'), $this, SLOT('setObjectProperty(int)'));
             break;
     }
     return $widget;
 }