LINUX.ORG.RU

QPopupMenu ?


0

0

//mypopdate.h

#include <qwidget.h>
#include <qpopupmenu.h>
#include <qaction.h>
#include <qpushbutton.h>

class mypopdate : public QWidget
{
	Q_OBJECT
	public:
	mypopdate( QWidget* parent = 0, const char* name = 0, WFlags fl = 0 );
	~mypopdate();
	

	QPushButton *knopka_date;
	
	QPopupMenu *menu_date;
	QPopupMenu *menu_date1;
	QPopupMenu *menu_date1_1[10];
	QPopupMenu *menu_date2;
	QPopupMenu *menu_date2_1[12];
	QPopupMenu *menu_date3;
	
	public slots:
		void setdata(/*int*/);

private:
	int menu_dateID;
	int menu_date1ID[10];
	int menu_date1_1ID[10];
	int menu_date2ID[12];
	int menu_date2_1ID[12];
	int menu_date3ID[31];
};

//mypopdate.cpp

#include "mypopdate.h"
#include <qstring.h>
#include <qsize.h>
	
const char *number_year[]={"0","1","2","3","4&
quot;,"5","6","7","8","9"};
const char *number_mont[]={"01 Январь", "02 Февраль", "03 Март", "04 Апрель", "05 Май", "06 Июнь", "07 Июль", "08 Август", "09 Сентябрь", "10 Октябрь", "11 Ноябрь", "12 Декабрь"};
const char *number_day[]= {"01", "02", "03", "04", "05", "06", "07", "08", "09", "10", "11", "12", "13", "14", "15", "16", "17", "18", "19", "20", "21", "22", "23", "24", "25", "26", "27", "28", "29", "30", "31"};

#define rus(char) QString::fromLocal8Bit(char)

mypopdate::mypopdate( QWidget* parent, const char* name, WFlags fl )
: QWidget( parent, name, fl )
{
	int i;
	QString tempstr;
	QFont tempfont( QFont("Tahoma", 10) );
	QFontMetrics fm( tempfont );

	knopka_date = new QPushButton(rus("От"),this);
	knopka_date->setFont(tempfont);
	knopka_date->setGeometry(0, 0, fm.width(rus("Год"))+20, fm.height()+5);
	
	resize(knopka_date->size());
	
	menu_date=new QPopupMenu (this);
	menu_date1=new QPopupMenu (this);
	menu_date2=new QPopupMenu (this);
	menu_date3=new QPopupMenu (this);
	//menu_date3->setFixedWidth(5);
	
	for( i=0; i<31; i++ )
		{
			menu_date3ID[i]=menu_date3->insertItem(rus(number_day[i]));
		}
	for( i=0; i<12; i++ )
		{
			menu_date2_1[i]=new QPopupMenu (this);
			menu_date2_1ID[i]=menu_date2_1[i]->insertItem(rus("День"), menu_date3);
			menu_date2ID[i]=menu_date2->insertItem(rus(number_mont[i]), menu_date2_1[i]);
		}
	for( i=0; i<10; i++ )
		{
			menu_date1_1[i]=new QPopupMenu (this);
			menu_date1_1ID[i]=menu_date1_1[i]->insertItem(rus("Meсяц"), menu_date2);
			menu_date1ID[i]=menu_date1->insertItem(rus(number_year[i]), menu_date1_1[i]);
		}
	menu_dateID=menu_date->insertItem(rus("Год"), menu_date1);

	knopka_date->setPopup(menu_date);
}

mypopdate::~mypopdate(){}

Не пинайте ногами.
Вопрос: 
как теперь узнать точно какой пункт выбран.

Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.