⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mainwindow.cpp

📁 Qt/Embedded是一个多平台的C++图形用户界面应用程序框架
💻 CPP
📖 第 1 页 / 共 5 页
字号:
    actionEditLower->addTo( rmbWidgets );    actionEditRaise->addTo( rmbWidgets );#endif    rmbWidgets->insertSeparator();    actionEditAdjustSize->addTo( rmbWidgets );    actionEditHLayout->addTo( rmbWidgets );    actionEditVLayout->addTo( rmbWidgets );    actionEditGridLayout->addTo( rmbWidgets );    actionEditBreakLayout->addTo( rmbWidgets );    rmbWidgets->insertSeparator();    actionEditConnections->addTo( rmbWidgets );    rmbFormWindow = new QPopupMenu( this );    actionEditPaste->addTo( rmbFormWindow );    actionEditSelectAll->addTo( rmbFormWindow );    actionEditAccels->addTo( rmbFormWindow );    rmbFormWindow->insertSeparator();    actionEditAdjustSize->addTo( rmbFormWindow );    actionEditHLayout->addTo( rmbFormWindow );    actionEditVLayout->addTo( rmbFormWindow );    actionEditGridLayout->addTo( rmbFormWindow );    actionEditBreakLayout->addTo( rmbFormWindow );    rmbFormWindow->insertSeparator();    actionEditSlots->addTo( rmbFormWindow );    actionEditConnections->addTo( rmbFormWindow );    actionEditFormSettings->addTo( rmbFormWindow );}void MainWindow::toolSelected( QAction* action ){    actionCurrentTool = action;    emit currentToolChanged();    if ( formWindow() )	formWindow()->commandHistory()->emitUndoRedo();}int MainWindow::currentTool() const{    if ( !actionCurrentTool )	return POINTER_TOOL;    return QString::fromLatin1(actionCurrentTool->name()).toInt();}static void unifyFormName( FormWindow *fw, QWorkspace *workspace ){    QStringList lst;    QWidgetList windows = workspace->windowList();    for ( QWidget *w =windows.first(); w; w = windows.next() ) {	if ( w == fw )	    continue;	lst << w->name();    }    if ( lst.findIndex( fw->name() ) == -1 )	return;    QString origName = fw->name();    QString n = origName;    int i = 1;    while ( lst.findIndex( n ) != -1 ) {	n = origName + QString::number( i++ );    }    fw->setName( n );    fw->setCaption( n );}void MainWindow::fileNew(){    statusBar()->message( tr( "Select a template for the new form...") );    NewForm dlg( this, templatePath() );    if ( dlg.exec() == QDialog::Accepted ) {	NewForm::Form f = dlg.formType();	if ( f != NewForm::Custom ) {	    insertFormWindow( f )->setFocus();	} else {	    QString filename = dlg.templateFile();	    if ( !filename.isEmpty() && QFile::exists( filename ) ) {		Resource resource( this );		if ( !resource.load( filename ) ) {		    QMessageBox::information( this, tr("Load Template"),			tr("Couldn't load form description from template "+ filename ) );		    return;		}		if ( formWindow() )		    formWindow()->setFileName( QString::null );		unifyFormName( formWindow(), workspace );	    }	}    }    statusBar()->clear();}void MainWindow::fileOpen(){    statusBar()->message( tr( "Select a file...") );    QString filename = QFileDialog::getOpenFileName( QString::null, Import::filters(), this );    if ( !filename.isEmpty() ) {	if ( filename.right( 4 ) == ".pro" ) {	    QStringList lst = getUiFiles( filename );	    for ( QStringList::Iterator it = lst.begin(); it != lst.end(); ++it ) {		QString fn = QUrl( QFileInfo( filename ).dirPath(), *it ).path();		openFile( fn );	    }	} else if ( filename.right( 3 ) == ".ui" ) {	    openFile( filename );	} else {	    statusBar()->message( tr( "Importing %1 using a 3rd party converter, this might take some time...").arg( filename ) );	    (void)new Import( filename, this ); // deletes itself	}    }}void MainWindow::openFile( const QString &filename, bool validFileName ){    if ( filename.isEmpty() )	return;    bool makeNew = FALSE;    if ( !QFile::exists( filename ) ) {	makeNew = TRUE;    } else {	QFile f( filename );	f.open( IO_ReadOnly );	QTextStream ts( &f );	makeNew = ts.read().length() < 2;    }    if ( !makeNew ) {	statusBar()->message( tr( "Reading file %1...").arg( filename ) );	if ( QFile::exists( filename ) ) {	    QApplication::setOverrideCursor( WaitCursor );	    Resource resource( this );	    bool b = resource.load( filename ) && (FormWindow*)resource.widget();	    if ( !validFileName && resource.widget() )		( (FormWindow*)resource.widget() )->setFileName( QString::null );	    QApplication::restoreOverrideCursor();	    qApp->processEvents();	    if ( b ) {		rebuildCustomWidgetGUI();		statusBar()->message( tr( "File %1 opened.").arg( filename ), 3000 );	    } else {		statusBar()->message( tr( "Failed to load file %1").arg( filename ), 5000 );		QMessageBox::information( this, tr("Load File"), tr("Couldn't load file %1").arg( filename ) );		    }	} else {	    statusBar()->clear();	}    } else {	fileNew();	if ( formWindow() )	    formWindow()->setFileName( filename );    }}bool MainWindow::fileSave(){    if ( !formWindow() )	return FALSE;    if ( formWindow()->fileName().isEmpty() ) {	return fileSaveAs();    } else {	QApplication::setOverrideCursor( WaitCursor );	formWindow()->save( formWindow()->fileName() );	QApplication::restoreOverrideCursor();    }    return TRUE;}bool MainWindow::fileSaveAs(){    statusBar()->message( tr( "Enter a filename..." ) );    if ( !formWindow() )	return FALSE;    FormWindow *fw = formWindow();    QString filename = QFileDialog::getSaveFileName( QString::null, tr( "Qt User-Interface Files (*.ui);;All Files (*)" ),						     this );    if ( filename.isEmpty() )	return FALSE;    QFileInfo fi( filename );    if ( fi.extension() != "ui" )	filename += ".ui";    fw->setFileName( filename );    fileSave();    return TRUE;}void MainWindow::fileSaveAll(){    QWidgetList windows = workSpace()->windowList();    for ( QWidget *w = windows.first(); w; w = windows.next() ) {	if ( !w->inherits( "FormWindow" ) )	    continue;	w->setFocus();	qApp->processEvents();	fileSave();    }}static bool inSaveAllTemp = FALSE;void MainWindow::saveAllTemp(){    if ( inSaveAllTemp )	return;    inSaveAllTemp = TRUE;    statusBar()->message( tr( "Qt Designer is crashing - saving work as good as possible..." ) );    QWidgetList windows = workSpace()->windowList();    QString baseName = QString( getenv( "HOME" ) ) + "/.designer/saved-form-";    int i = 1;    for ( QWidget *w = windows.first(); w; w = windows.next() ) {	if ( !w->inherits( "FormWindow" ) )	    continue;		QString fn = baseName + QString::number( i++ ) + ".ui";	( (FormWindow*)w )->setFileName( fn );	( (FormWindow*)w )->save( fn );    }    inSaveAllTemp = FALSE;}void MainWindow::fileCreateTemplate(){    CreateTemplate dia( this, 0, TRUE );    for ( int i = 0; i < WidgetDatabase::numWidgetGroups(); ++i ) {	if ( WidgetDatabase::isContainer( i ) && WidgetDatabase::className( i ) != "QTabWidget" )	    dia.listClass->insertItem( WidgetDatabase::className( i ) );    }    QList<MetaDataBase::CustomWidget> *lst = MetaDataBase::customWidgets();    for ( MetaDataBase::CustomWidget *w = lst->first(); w; w = lst->next() ) {	if ( w->isContainer )	    dia.listClass->insertItem( w->className );    }    dia.editName->setText( tr( "NewTemplate" ) );    connect( dia.buttonCreate, SIGNAL( clicked() ),	     this, SLOT( createNewTemplate() ) );    dia.exec();}void MainWindow::editUndo(){    if ( formWindow() ) 	formWindow()->undo();}void MainWindow::editRedo(){    if ( formWindow() )	formWindow()->redo();}void MainWindow::editCut(){    editCopy();    editDelete();}void MainWindow::editCopy(){    if ( formWindow() )	qApp->clipboard()->setText( formWindow()->copy() );}void MainWindow::editPaste(){    if ( !formWindow() )	return;    QWidget *w = formWindow()->mainContainer();    QWidgetList l( formWindow()->selectedWidgets() );    if ( l.count() == 1 ) {	w = l.first();	if ( WidgetFactory::layoutType( w ) != WidgetFactory::NoLayout ||	     ( !WidgetDatabase::isContainer( WidgetDatabase::idFromClassName( WidgetFactory::classNameOf( w ) ) ) &&	       w != formWindow()->mainContainer() ) )	    w = formWindow()->mainContainer();    }    if ( w && WidgetFactory::layoutType( w ) == WidgetFactory::NoLayout ) {	formWindow()->paste( qApp->clipboard()->text(), WidgetFactory::containerOfWidget( w ) );	hierarchyView->widgetInserted( 0 );	formWindow()->commandHistory()->setModified( TRUE );    } else {	// #### should we popup a messagebox here which says that	// nothing has been pasted because you can't paste into a	// laid out widget? (RS)    }}void MainWindow::editDelete(){    if ( formWindow() )	formWindow()->deleteWidgets();}void MainWindow::editSelectAll(){    if ( formWindow() )	formWindow()->selectAll();}void MainWindow::editLower(){    if ( formWindow() )	formWindow()->lowerWidgets();}void MainWindow::editRaise(){    if ( formWindow() )	formWindow()->raiseWidgets();}void MainWindow::editAdjustSize(){    if ( formWindow() )	formWindow()->editAdjustSize();}void MainWindow::editLayoutHorizontal(){    if ( layoutChilds )	editLayoutContainerHorizontal();    else if ( layoutSelected && formWindow() )	formWindow()->layoutHorizontal();}void MainWindow::editLayoutVertical(){    if ( layoutChilds )	editLayoutContainerVertical();    else if ( layoutSelected && formWindow() )	formWindow()->layoutVertical();}void MainWindow::editLayoutGrid(){    if ( layoutChilds )	editLayoutContainerGrid();    else if ( layoutSelected && formWindow() )	formWindow()->layoutGrid();

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -