本文整理汇总了C++中QStackedWidget类的典型用法代码示例。如果您正苦于以下问题:C++ QStackedWidget类的具体用法?C++ QStackedWidget怎么用?C++ QStackedWidget使用的例子?那么, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了QStackedWidget类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: startMasterPageMode
void PagePalette::startMasterPageMode(QString masterPage)
{
ScribusDoc* doc = m_view->Doc;
bool mustDeselect = false;
mustDeselect |= (!doc->masterPageMode());
mustDeselect |= (doc->masterPageMode() && doc->currentPage()->pageName() != masterPage);
if (mustDeselect)
{
// We must avoid deselecting directly if doc is in an edit mode,
// otherwise that would cause an inconsistent state. In such case,
// fallback to normal mode by precaution
if (doc->appMode != modeNormal)
m_view->requestMode(modeNormal);
m_view->Deselect(true);
}
QStackedWidget* stackedWidget = this->stackedWidget();
if (stackedWidget->count() < 2)
{
PagePalette_MasterPages* mpWidget = new PagePalette_MasterPages(stackedWidget, m_view, masterPage);
mpWidget->setObjectName(QString::fromLocal8Bit("PagePalette_MasterPages"));
stackedWidget->addWidget(mpWidget);
connect(mpWidget, SIGNAL(removePage(int )), m_scMW, SLOT(deletePage2(int )));
connect(mpWidget, SIGNAL(finished()) , m_scMW, SLOT(editMasterPagesEnd()));
}
else
{
ScribusDoc* doc = m_view->Doc;
PagePalette_MasterPages* mpWidget = this->masterpageWidget();
if (mpWidget->m_view != m_view)
mpWidget->setView(m_view, masterPage);
mpWidget->updateMasterPageList(masterPage);
if (doc->currentPage()->pageName() != masterPage)
mpWidget->selectMasterPage(masterPage);
}
// Set focus to page palette or focus may be set to wrong document window
this->setFocus();
stackedWidget->setCurrentIndex(1);
}
示例2: VECTOR_push_back
static vector_t *create_instruments_widget_state(void){
vector_t *state = (vector_t *)talloc(sizeof(vector_t));
//vector_t *names = (vector_t *)talloc(sizeof(vector_t));
vector_t *pages = (vector_t *)talloc(sizeof(vector_t));
//VECTOR_push_back(state, names);
VECTOR_push_back(state, pages);
QStackedWidget* tabs = instruments_widget->tabs;
for(int i=0;i<tabs->count();i++){
//VECTOR_push_back(names, talloc_strdup(tabs->tabText(i).toUtf8().constData()));
VECTOR_push_back(pages, tabs->widget(i));
}
VECTOR_push_back(state, tabs->currentWidget());
return state;
}
示例3: ScDockPalette
PagePalette::PagePalette(QWidget* parent) : ScDockPalette(parent, "PagePalette", 0)
{
m_scMW = (ScribusMainWindow*) parent;
m_view = 0;
setObjectName(QString::fromLocal8Bit("PagePalette"));
QStackedWidget* stackedWidget = new QStackedWidget(this);
stackedWidget->setObjectName(QString::fromLocal8Bit("stackedWidget"));
PagePalette_Pages* pageWidget = new PagePalette_Pages(stackedWidget);
pageWidget->setObjectName(QString::fromLocal8Bit("PagePalette_Pages"));
stackedWidget->addWidget(pageWidget);
setWidget(stackedWidget);
connect(pageWidget, SIGNAL(gotoMasterPage(QString)), m_scMW, SLOT(editMasterPagesStart(QString)));
Rebuild();
languageChange();
}
示例4: slotTriggered
void RemoveStackPageAction::slotTriggered()
{
if ( !KexiUtils::objectIsA(m_receiver, "QStackedWidget")
&& /* compat */ !KexiUtils::objectIsA(m_receiver, "QWidgetStack"))
{
return;
}
QStackedWidget *stack = qobject_cast<QStackedWidget*>(m_receiver);
QWidget *page = stack->currentWidget();
QWidgetList list;
list.append(page);
KFormDesigner::Command *com = new KFormDesigner::DeleteWidgetCommand(*m_container->form(), list);
// raise prev/next widget
int index = stack->indexOf(page);
if (index > 0) {
index--;
}
else if (index < (stack->count()-1)) {
index++;
}
else {
index = -1;
}
if (index >= 0) {
stack->setCurrentIndex(index);
}
stack->removeWidget(page);
m_container->form()->addCommand(com);
}
示例5: dynamicPages
void tst_QStackedWidget::dynamicPages()
{
QStackedWidget *sw = new QStackedWidget;
TestPage *w1 = new TestPage(true);
w1->setN(3);
TestPage *w2 = new TestPage;
w2->setN(3);
sw->addWidget(w1);
sw->addWidget(w2);
QLineEdit *le11 = w1->findChild<QLineEdit*>(QLatin1String("lineEdit1"));
le11->setFocus(); // set focus to second widget in the page
sw->resize(200, 200);
sw->show();
qApp->setActiveWindow(sw);
QTest::qWaitForWindowActive(sw);
QTRY_COMPARE(QApplication::focusWidget(), le11);
sw->setCurrentIndex(1);
QLineEdit *le22 = w2->findChild<QLineEdit*>(QLatin1String("lineEdit2"));
le22->setFocus();
QTRY_COMPARE(QApplication::focusWidget(), le22);
// Going back should move focus back to le11
sw->setCurrentIndex(0);
QTRY_COMPARE(QApplication::focusWidget(), le11);
}
示例6: QDialog
FontSettingsDialog::FontSettingsDialog(QWidget *parent)
: QDialog(parent)
, m_windowFontPanel(new FontPanel(this))
, m_browserFontPanel(new FontPanel(this))
, m_dialogButtonBox(new QDialogButtonBox(QDialogButtonBox::Ok|QDialogButtonBox::Cancel))
{
setModal(true);
setWindowTitle(tr("Font Settings"));
setWindowFlags(windowFlags() & ~Qt::WindowContextHelpButtonHint);
QVBoxLayout *mainVLayout = new QVBoxLayout(this);
QHBoxLayout *hboxLayout = new QHBoxLayout;
mainVLayout->addLayout(hboxLayout);
QLabel *label = new QLabel(tr("Font settings for:"), this);
label->setSizePolicy(QSizePolicy::Maximum, QSizePolicy::Preferred);
hboxLayout->addWidget(label);
QComboBox *comboBox = new QComboBox(this);
comboBox->addItem(tr("Browser"));
comboBox->addItem(tr("Application"));
hboxLayout->addWidget(comboBox);
m_windowFontPanel->setCheckable(true);
m_browserFontPanel->setCheckable(true);
const QString customSettings(tr("Use custom settings"));
m_windowFontPanel->setTitle(customSettings);
m_browserFontPanel->setTitle(customSettings);
QStackedWidget *stackWidget = new QStackedWidget(this);
stackWidget->addWidget(m_browserFontPanel);
stackWidget->addWidget(m_windowFontPanel);
mainVLayout->addWidget(stackWidget);
mainVLayout->addWidget(m_dialogButtonBox);
connect(m_dialogButtonBox , SIGNAL(rejected()), this, SLOT(reject()));
connect(m_dialogButtonBox , SIGNAL(accepted()), this, SLOT(accept()));
connect(comboBox, SIGNAL(activated(int)), stackWidget, SLOT(setCurrentIndex(int)));
}
示例7: GFX_update_all_instrument_widgets
void GFX_update_all_instrument_widgets(void){
QStackedWidget* tabs = g_instruments_widget->tabs;
//printf("*(((((((((( Calling. Update all %d:\n",tabs->count());
for(int i=0;i<tabs->count();i++){
MIDI_instrument_widget *midi_instrument = dynamic_cast<MIDI_instrument_widget*>(tabs->widget(i));
Audio_instrument_widget *audio_instrument = dynamic_cast<Audio_instrument_widget*>(tabs->widget(i));
//printf("Update all %d: %p/%p\n",i,midi_instrument,audio_instrument);
if(midi_instrument!=NULL){
if(midi_instrument->patch->patchdata!=NULL)
update_midi_instrument_widget(midi_instrument,midi_instrument->patch.data());
}else if(audio_instrument!=NULL){
if(audio_instrument->_patch->patchdata!=NULL)
update_audio_instrument_widget(audio_instrument,audio_instrument->_patch.data());
}
}
}
示例8: getHierarchyNames
//-----------------------------------------------------------------------------
// Function: ComponentEditorSettingsPage::createWorkspacePages()
//-----------------------------------------------------------------------------
QStackedWidget* ComponentEditorSettingsPage::createWorkspacePages(QString currentWorkspaceName,
QStringList workspaceNames)
{
SettingsPage::settings().beginGroup("Workspaces");
SettingsPage::settings().beginGroup(currentWorkspaceName + "/ComponentEditorFilters/HW/Flat");
QStringList hwCheckBoxNames = SettingsPage::settings().childKeys();
SettingsPage::settings().endGroup(); // workspaceName/ComponentEditorFilters/HW
SettingsPage::settings().beginGroup(currentWorkspaceName + "/ComponentEditorFilters/SW");
QStringList swCheckBoxNames = SettingsPage::settings().childKeys();
SettingsPage::settings().endGroup(); // workspaceName/ComponentEditorFilters/SW
SettingsPage::settings().endGroup(); // Workspaces
QStringList hierarchyNames = getHierarchyNames();
hwCheckBoxNames = changeNameSeparators(hwCheckBoxNames);
swCheckBoxNames = changeNameSeparators(swCheckBoxNames);
QStackedWidget* workspaces = new QStackedWidget;
for (int workspaceIndex = 0; workspaceIndex < workspaceNames.size(); ++workspaceIndex)
{
QTableWidget* hwTable = new QTableWidget (hwCheckBoxNames.size(), hierarchyNames.size(), this);
setHwTable(hwTable, hierarchyNames, hwCheckBoxNames, workspaceIndex);
QTableWidget* swTable = new QTableWidget (swCheckBoxNames.size(), 1, this);
QStringList swHeader("Global");
setSwTable(swTable, swHeader, swCheckBoxNames, workspaceIndex);
QTabWidget* wareTab = new QTabWidget;
wareTab->addTab(hwTable, "Hardware");
wareTab->addTab(swTable, "Software");
workspaces->addWidget(wareTab);
}
return (workspaces);
}
示例9: main
int main(int argc,char **argv)
{
QApplication app(argc,argv);
QCoreApplication::setOrganizationName("Rabitsa");
QCoreApplication::setApplicationName("filters");
QApplication::setStyle(new QPlastiqueStyle);
QSettings s;
IoNetClient net( s.value("/ioserv/hostname","localhost").toString());
net.setCmode(
#ifdef WIN32
false
#else
s.value("/ioserv/cmode",true).toBool()
#endif
);
QStackedWidget main;
QColor cl;
QPalette pal;
cl.setRgb(90,132,201);
pal.setColor(QPalette::Background,cl);
main.setPalette(pal);
QTranslator translator;
translator.load("filters_"+QLocale::system().name(),":/translate");
app.installTranslator(&translator);
QTextCodec::setCodecForTr(QTextCodec::codecForName("UTF-8"));
mMainForm *mainForm = new mMainForm(net);
main.addWidget(mainForm);
main.setCurrentWidget(mainForm);
if(QApplication::desktop()->size().width()>1366 && QApplication::desktop()->size().height()> 768)
{
main.resize(1366,768);
main.show();
}
else
{
main.showFullScreen();
}
return app.exec();
}
示例10: recreate_instruments_widget_from_state
static void recreate_instruments_widget_from_state(vector_t *state){
QStackedWidget* tabs = instruments_widget->tabs;
while(tabs->count()>0)
tabs->removeWidget(tabs->currentWidget());
//vector_t *names = (vector_t*)state->elements[0];
vector_t *pages = (vector_t*)state->elements[0];
for(int i=pages->num_elements-1; i>=0; i--){
QWidget *page = (QWidget*)pages->elements[i];
tabs->insertWidget(0,page);//,(const char*)names->elements[i]);
}
tabs->setCurrentWidget((QWidget*)state->elements[1]);
}
示例11: if
void Form3::keyPressEvent(QKeyEvent * ev) {
QStackedWidget *sw = ui->stackedWidget;
//if(!testEnabled) return;
bool ok;
ix = sw->currentIndex();
int key = ev->key();
if(key == Qt::Key_F12) {
if(testMode == true) {
QMessageBox mb;
//mb.setText(tr("Ручная правка данных отключена"));
//mb.setInformativeText( tr("Чтение из аппаратуры восстановлено") );
mb.exec();
testMode=false;
}
}
else if(key == Qt::Key_F11) {
QString text = QInputDialog::getText(this,
"",//tr("Ручная правка данных"),
"",//tr("Чтение из аппаратуры выключено. Введите через запятую: адрес, значение"),
QLineEdit::Normal, 0, &ok);
if (ok && !text.isEmpty()) {
QStringList slist = text.split(",");
int dev=slist[0].toInt(&ok); if(!ok) return;
int adr=slist[1].toInt(&ok); if(!ok) return;
int val=slist[2].toInt(&ok); if(!ok) return;
valData[dev][adr] = val;
}
testMode = true;
}
else if(key == Qt::Key_Backspace) {
ref->show();
ref->setFocus();
}
else if(key == Qt::Key_Slash) { // меню ППН
if(ix==12) { // только для
ppnRef->show();
ppnRef->setFocus();
}
}
else
if(key == Qt::Key_Right) { // след.страница
// если были на слайде алгоритма, переходим сразу на 14й слайд (параметры ИК)
if((ix>=1 && ix<=11))
sw->setCurrentIndex(12);
else
sw->setCurrentIndex( (ix<(sw->count()-1))? ix+1 : 0);
}
else if(key == Qt::Key_Left) {// предыд.страница
// если были на слайде алгоритма, переходим на 1й слайд
if(ix>=1 && ix<=11)
sw->setCurrentIndex(0);
else if(ix==12) // если были на таблице ИК, на первый слайд с алгоритмами
sw->setCurrentIndex(1);
else
sw->setCurrentIndex(ix > 0? ix-1 : sw->count()-1);
}
else if(key == Qt::Key_Down) { // след.слайд в группе слайдов
if(ix==12) { // если мы на таблице ППН
ui->sw2->setCurrentIndex(( ui->sw2->currentIndex() <ui->sw2->count()-1 )? ui->sw2->currentIndex() + 1 : 0);
}
else if(ix>=1 && ix<=11) { // если на алгоритмах защит
sw->setCurrentIndex( (ix<11)? ix+1 : 1);
}
else if(ix==13) { // слайд дискр сигналов
discrSlideCurr<3?discrSlideCurr++:discrSlideCurr=0;
// switch(discrSlideCurr) {
// case 0: // вх 151,152
// paintEvent1(in151);
// break;
// case 1:
// paintEvent1(out155az);
// break;
// case 2:
// paintEvent1(out155pz);
// break;
// case 3:
// paintEvent1(pca);
// break;
// }
update();
}
}
else if(key == Qt::Key_Up) { // предыд.страница
if(ix==12) { // если мы на таблице ППН
ui->sw2->setCurrentIndex((ui->sw2->currentIndex() > 0 )? ui->sw2->currentIndex()-1 : ui->sw2->count()-1);
}
else if(ix>=1 && ix<=11) { // если на алгоритмах защит
sw->setCurrentIndex( (ix>1)? ix-1 : 11);
}
else if(ix==13) { // слайд дискр сигналов
discrSlideCurr>0?discrSlideCurr--:discrSlideCurr=3;
update();
}
//.........这里部分代码省略.........
示例12: QDialog
ExportOptionsDlg::ExportOptionsDlg(ExporterResource& pExporter, QWidget* pParent) :
QDialog(pParent),
mpExporter(pExporter),
mpTabWidget(NULL),
mpSubsetPage(NULL),
mpExporterPage(NULL)
{
// Options widget
QStackedWidget* pStack = new QStackedWidget(this);
// Subset page
RasterElement* pRasterElement = dynamic_cast<RasterElement*>(mpExporter->getItem());
RasterFileDescriptor* pRasterWholeCubeFileDescriptor = NULL;
RasterDataDescriptor* pRasterOrgDataDescriptor = NULL;
if (pRasterElement != NULL)
{
pRasterOrgDataDescriptor = dynamic_cast<RasterDataDescriptor*>(pRasterElement->getDataDescriptor());
if (pRasterOrgDataDescriptor != NULL)
{
// we are creating a file descriptor for export from the original cube, because the SubsetWidget
// uses DimensionDescriptor::operator= compare's to determine selection which dictate that on-disk,
// original and active numbers need to be identical, this guarantees that DimensionDescriptors will
// compare correctly.
pRasterWholeCubeFileDescriptor = dynamic_cast<RasterFileDescriptor*>(
RasterUtilities::generateFileDescriptorForExport(pRasterOrgDataDescriptor, "foobar"));
}
}
RasterFileDescriptor* pRasterFileDescriptor = dynamic_cast<RasterFileDescriptor*>(mpExporter->getFileDescriptor());
if ((pRasterFileDescriptor != NULL) && (pRasterWholeCubeFileDescriptor != NULL) &&
(pRasterOrgDataDescriptor != NULL))
{
mpSubsetPage = new SubsetWidget();
mpSubsetPage->setExportMode(true);
// Rows
const vector<DimensionDescriptor>& orgRows = pRasterWholeCubeFileDescriptor->getRows();
const vector<DimensionDescriptor>& selectedRows = pRasterFileDescriptor->getRows();
mpSubsetPage->setRows(orgRows, selectedRows);
// Columns
const vector<DimensionDescriptor>& orgColumns = pRasterWholeCubeFileDescriptor->getColumns();
const vector<DimensionDescriptor>& selectedColumns = pRasterFileDescriptor->getColumns();
mpSubsetPage->setColumns(orgColumns, selectedColumns);
// Bands
const vector<DimensionDescriptor>& orgBands = pRasterWholeCubeFileDescriptor->getBands();
const vector<DimensionDescriptor>& selectedBands = pRasterFileDescriptor->getBands();
vector<string> bandNames = RasterUtilities::getBandNames(pRasterOrgDataDescriptor);
mpSubsetPage->setBands(orgBands, bandNames, selectedBands);
// Initial bad band file directory
QString strDirectory;
string filename = pRasterFileDescriptor->getFilename();
if (filename.empty() == false)
{
QFileInfo fileInfo(QString::fromStdString(filename));
strDirectory = fileInfo.absolutePath();
}
mpSubsetPage->setBadBandFileDirectory(strDirectory);
}
// Exporter page
if (mpExporter->getPlugIn() != NULL)
{
mpExporterPage = mpExporter->getExportOptionsWidget();
}
// Horizontal line
QFrame* pLine = new QFrame(this);
pLine->setFrameStyle(QFrame::HLine | QFrame::Sunken);
// Buttons
QDialogButtonBox* pButtonBox = new QDialogButtonBox(QDialogButtonBox::Ok | QDialogButtonBox::Cancel,
Qt::Horizontal, this);
// Layout
QVBoxLayout* pLayout = new QVBoxLayout(this);
pLayout->setMargin(10);
pLayout->setSpacing(10);
pLayout->addWidget(pStack, 10);
pLayout->addWidget(pLine);
pLayout->addWidget(pButtonBox);
// Initialization
QString strWindowTitle = "Export Options";
SessionItem* pSessionItem = mpExporter->getItem();
if (pSessionItem != NULL)
{
string name = pSessionItem->getDisplayName();
if (name.empty() == true)
{
name = pSessionItem->getName();
}
if (name.empty() == false)
{
strWindowTitle += ": " + QString::fromStdString(name);
//.........这里部分代码省略.........
示例13: QWidget
CleanupSettings::CleanupSettings(QWidget *parent)
: QWidget(parent), m_attached(false)
{
QVBoxLayout *vLayout = new QVBoxLayout(this);
vLayout->setMargin(1); // NOTE: This works to show the 1-pix black border,
// because this is a QWidget (not QFrame) heir...
setLayout(vLayout);
// Tabs Container
// Used to deal with styled background and other stuff
TabBarContainter *tabBarContainer = new TabBarContainter(this);
QHBoxLayout *hLayout = new QHBoxLayout(tabBarContainer);
hLayout->setMargin(0);
hLayout->setAlignment(Qt::AlignLeft);
hLayout->addSpacing(6);
vLayout->addWidget(tabBarContainer);
// Tabs Bar
DVGui::TabBar *tabBar = new DVGui::TabBar(this);
hLayout->addWidget(tabBar);
tabBar->addSimpleTab(tr("Cleanup"));
tabBar->addSimpleTab(tr("Processing"));
tabBar->addSimpleTab(tr("Camera"));
tabBar->setDrawBase(false);
// Splitter
QSplitter *split = new QSplitter(Qt::Vertical, this);
split->setSizePolicy(QSizePolicy(QSizePolicy::MinimumExpanding, QSizePolicy::MinimumExpanding));
vLayout->addWidget(split);
// Stacked Widget
QStackedWidget *stackedWidget = new QStackedWidget(split);
stackedWidget->setMinimumWidth(300);
//stackedWidget->setMinimumHeight(250);
split->addWidget(stackedWidget);
split->setStretchFactor(0, 1);
// Cleanup Tab
QScrollArea *scrollArea = new QScrollArea(stackedWidget);
stackedWidget->addWidget(scrollArea);
scrollArea->setWidgetResizable(true);
scrollArea->setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
m_cleanupTab = new CleanupTab;
scrollArea->setWidget(m_cleanupTab);
// Processing Tab
scrollArea = new QScrollArea(stackedWidget);
stackedWidget->addWidget(scrollArea);
scrollArea->setWidgetResizable(true);
scrollArea->setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
m_processingTab = new ProcessingTab;
scrollArea->setWidget(m_processingTab);
// Camera Tab
scrollArea = new QScrollArea(stackedWidget);
stackedWidget->addWidget(scrollArea);
scrollArea->setWidgetResizable(true);
scrollArea->setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
m_cameraTab = new CameraTab;
scrollArea->setWidget(m_cameraTab);
m_cameraTab->setCameraPresetListFile(ToonzFolder::getReslistPath(true));
// Swatch
m_swatch = new CleanupSwatch(split, 200, 150);
split->addWidget(m_swatch);
// ToolBar
QWidget *toolBarWidget = new QWidget(this);
vLayout->addWidget(toolBarWidget);
toolBarWidget->setFixedHeight(22);
QHBoxLayout *toolBarLayout = new QHBoxLayout(toolBarWidget);
toolBarWidget->setLayout(toolBarLayout);
toolBarLayout->setMargin(0);
toolBarLayout->setSpacing(0);
QToolBar *leftToolBar = new QToolBar(toolBarWidget);
toolBarLayout->addWidget(leftToolBar, 0, Qt::AlignLeft);
//.........这里部分代码省略.........
示例14: QGridLayout
void QTodoManager::initUI()
{
QGridLayout *grid = new QGridLayout(this);
QWidget *closew = new QWidget(this);
IconButton *closeB = QAppUtils::ref().getCloseIconBtn(closew);
QHBoxLayout *hlay = new QHBoxLayout(closew);
QWidget *tipw = new QWidget(this);
QVBoxLayout *tiplay = new QVBoxLayout(tipw);
m_lbtip = new QLabel(tipw);
tiplay->addWidget(m_lbtip);
m_lbtip->setText(LOCAL("当前位置>>"));
hlay->addWidget(closeB);
connect(closeB,SIGNAL(clicked()),this,SLOT(close()));
m_stacked = new QStackedWidget(this);
m_wid_alldo = new QToDoContent(this);//QWinFactory::ref().createWindow(QWinFactory::Widget);
m_wid_alldo->setTitle(QStringList()<<LOCAL("所有事项")<<LOCAL("选择"));
m_wid_todo = new QToDoContent(this,QToDoContent::ToDo);//QWinFactory::ref().createWindow(QWinFactory::Widget);
m_wid_todo->setTitle(QStringList()<<LOCAL("待办事项")<<LOCAL("选择"));
m_wid_done = new QToDoContent(this,QToDoContent::Done);//QWinFactory::ref().createWindow(QWinFactory::Widget);
m_wid_done->setTitle(QStringList()<<LOCAL("已办事项")<<LOCAL("选择"));
m_wid_alldo->flushData(QToDoData::ref().getAll());
//按钮
m_allcando = new QPureColorButton(this);
m_todobtn = new QPureColorButton(this);
m_donebtn = new QPureColorButton(this);
m_allcando->setButtonText(LOCAL("全部事项"));
m_todobtn->setButtonText(LOCAL("待办事项"));
m_donebtn->setButtonText(LOCAL("已办事项"));
m_allcando->setIndex(ALLTask);
m_todobtn->setIndex(ToDoTask);
m_donebtn->setIndex(DoneTask);
connect(m_allcando,SIGNAL(clicked(int)),this,SLOT(stack_change(int)));
connect(m_todobtn,SIGNAL(clicked(int)),this,SLOT(stack_change(int)));
connect(m_donebtn,SIGNAL(clicked(int)),this,SLOT(stack_change(int)));
m_allcando->setColors(QColor(0,0,100),QColor(0,200,200)
,QColor(0,100,100),QColor(0,150,150));
m_todobtn->setColors(QColor(0,0,100),QColor(0,200,200)
,QColor(0,100,100),QColor(0,150,150));
m_donebtn->setColors(QColor(0,0,100),QColor(0,200,200)
,QColor(0,100,100),QColor(0,150,150));
QStackedWidget *stacked = m_stacked;
stacked->setContentsMargins(0,0,0,0);
stacked->addWidget(m_wid_alldo);
stacked->addWidget(m_wid_todo);
stacked->addWidget(m_wid_done);
grid->setSpacing(5);
grid->setContentsMargins(0,0,0,10);
grid->addWidget(tipw,0,0,1,1);
grid->addWidget(closew,0,2,1,1,Qt::AlignRight);
grid->addWidget(stacked,1,0,1,3);
grid->addWidget(m_allcando,2,0,1,1);
grid->addWidget(m_todobtn,2,1,1,1);
grid->addWidget(m_donebtn,2,2,1,1);
}
示例15: main
int main(int argc, char **argv)
{
Vals vals;
/* the application */
QApplication app(argc, argv);
app.setApplicationName(APP_NAME);
app.setWindowIcon(QIcon(":/icon"));
Window window;
/* translations */
QTranslator qtr;
if (qtr.load("qt_" + QLocale::system().name(), QTR_PATH))
app.installTranslator(&qtr);
QTranslator htr;
if (htr.load("H4KvT_" + QLocale::system().name(), ":/"))
app.installTranslator(&htr);
/* display information */
QTextEdit *text = new QTextEdit;
text->setReadOnly(true);
text->setLineWrapMode(QTextEdit::NoWrap);
text->setToolTip(Window::tr("Drop any file for hashing"));
QObject::connect(&window, &Window::idle, text, &QWidget::setEnabled);
/* compare hash */
QLineEdit *test = new QLineEdit;
HexVal hexval;
test->setValidator(&hexval);
test->installEventFilter(&window);
test->setToolTip(Window::tr("Compare hashes"));
QObject::connect(test, &QLineEdit::textChanged,
[&](const QString &newValue) { if (vals.name != "") {
std::string hashVal = newValue.toStdString();
std::transform(hashVal.begin(), hashVal.end(), hashVal.begin(), ::tolower);
std::stringstream html;
if (hashVal != "")
html << "<style>.h" << hashVal << "{color:green}</style>";
html << "<div style='margin-bottom:2; font-size:27px'><i><b>" << vals.name << "</b></i></div>";
html << "<div style='margin-bottom:7; margin-left:23; font-size:13px'>" << vals.path << "</div>";
if (!ALL(vals,"")) {
html << "<div style='font-size:13px'><table>";
if (vals.md5 != "")
html << "<tr><td>md5: </td><td class='h" << vals.md5 << "'>" << vals.md5 << "</td</tr>";
if (vals.sha1 != "")
html << "<tr><td>sha1: </td><td class='h" << vals.sha1 << "'>" << vals.sha1 << "</td</tr>";
if (vals.sha224 != "")
html << "<tr><td>sha224: </td><td class='h" << vals.sha224 << "'>" << vals.sha224 << "</td</tr>";
if (vals.sha256 != "")
html << "<tr><td>sha256: </td><td class='h" << vals.sha256 << "'>" << vals.sha256 << "</td</tr>";
if (vals.sha384 != "")
html << "<tr><td>sha384: </td><td class='h" << vals.sha384 << "'>" << vals.sha384 << "</td</tr>";
if (vals.sha512 != "")
html << "<tr><td>sha512: </td><td class='h" << vals.sha512 << "'>" << vals.sha512 << "</td</tr>";
html << "</table></div>";
}
int horizontal = text->horizontalScrollBar()->value();
int vertical = text->verticalScrollBar()->value();
text->setHtml(QString::fromStdString(html.str()));
text->horizontalScrollBar()->setValue(horizontal);
text->verticalScrollBar()->setValue(vertical);
test->setStyleSheet(ANY(vals,hashVal) ? "color:green" : "");
}});
/* error messages */
QLabel *error = new QLabel;
error->setStyleSheet("color:red");
/* test or error */
QStackedWidget *stack = new QStackedWidget;
delete stack->layout();
stack->setLayout(new Stack);
stack->addWidget(error);
stack->addWidget(test);
stack->setCurrentIndex(1);
/* toggle test or error */
QPushButton *hash = new QPushButton(QIcon(":/icon"), "");
hash->setCheckable(true);
hash->setChecked(true);
hash->setToolTip(Window::tr("Compare hashes"));
QObject::connect(hash, &QPushButton::toggled, stack, &QStackedWidget::setCurrentIndex);
/* store method */
QSettings settings("H4KvT", "H4KvT");
/* more methods */
bool more;
try {
settings.setValue("MoreHashingMethods", more = moreOrLess());
} catch (...) {
more = settings.value("MoreHashingMethods", false).toBool();
}
/* hashing method */
QComboBox *meth = new QComboBox;
meth->addItem("md5");
meth->addItem("sha1");
//.........这里部分代码省略.........