
рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ, рдореИрдВ Qt рдХреА рдХреБрдЫ рддрдХрдиреАрдХреЛрдВ рдФрд░ рддрдХрдиреАрдХреЛрдВ рдкрд░ рдкреНрд░рдХрд╛рд╢ рдбрд╛рд▓рддреЗ рд╣реБрдП, рдПрдХ рдПрдХрд▓ рд╡рд┐рдЬреЗрдЯ (GUI рддрддреНрд╡) рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдиреЗ рдореЗрдВ рдЕрдкрдиреЗ рдЕрдиреБрднрд╡ рдХреЛ рд╕рд╛рдЭрд╛ рдХрд░рдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛ред
рдмрд╣реБрдд рдмрд╛рд░ рдпрд╣ рдЖрд╡рд╢реНрдпрдХ рд╣реИ рдХрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рддрд╛рд▓рд┐рдХрд╛ рдореЗрдВ рдкрдВрдХреНрддрд┐рдпреЛрдВ рдФрд░ рд╕реНрддрдВрднреЛрдВ рдХреЛ рд╕рдореНрдорд┐рд▓рд┐рдд рдХрд░рдиреЗ рдпрд╛ рдЙрдиреНрд╣реЗрдВ рд╣рдЯрд╛рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рджреА рдЬрд╛рдПред рдПрдХ рдирд┐рдпрдо рдХреЗ рд░реВрдк рдореЗрдВ, рдЗрд╕реЗ рдирд┐рдореНрдирд╛рдиреБрд╕рд╛рд░ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ: рдЖрдкрдХреЛ рд╢реАрд░реНрд╖ рд▓реЗрдЦ рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рдХреЗ рдПрдХ рдкрдВрдХреНрддрд┐ рдХрд╛ рдЪрдпрди рдХрд░рдирд╛ рд╣реЛрдЧрд╛ рдФрд░ рдореЗрдиреВ рдореЗрдВ рдПрдХ рдЖрдЗрдЯрдо рдХрд╛ рдЪрдпрди рдХрд░рдирд╛ рд╣реЛрдЧрд╛: рдЪрдпрди рдХрд░реЗрдВ> рдореЗрдиреВ> рд╕рдореНрдорд┐рд▓рд┐рдд рдХрд░реЗрдВ | рд╣рдЯрд╛ рджреЗрдВред рдпрд╣ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╕реНрдкрд╖реНрдЯ рдФрд░ рд╕рд╣рдЬ рдирд╣реАрдВ рд╣реИ, рдЬреИрд╕рд╛ рдХрд┐ рддрдереНрдп рдпрд╣ рд╣реИ рдХрд┐ рд▓рд╛рдЗрди рдХреЛ рд╡рд░реНрддрдорд╛рди рдПрдХ
рд╕реЗ рдкрд╣рд▓реЗ рдбрд╛рд▓рд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдирд╣реАрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЗрд╕рдХреЗ рдмрд╛рджред рдЗрд╕рд▓рд┐рдП, рдореИрдВрдиреЗ рдПрдХ рд╡рд┐рдЬреЗрдЯ рд▓рд┐рдЦрд╛ рд╣реИ рдЬреЛ рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рджреВрд░ рдХрд░рддрд╛ рд╣реИред
рд╡рд┐рдЬреЗрдЯ рдЯреЗрдмрд▓ рдХреА рд╕реАрдорд╛ рдХреЗ рд╕рд╛рде рдХрд░реНрд╕рд░ рдХрд╛ рдЕрдиреБрд╕рд░рдг рдХрд░рддреЗ рд╣реБрдП рдЪрд╛рд░ рдмрдЯрди рдХреА рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИ (рд╣рд╛рд╣рд╛, рдпрд╣ рдЙрди рдордзреБрдордХреНрдЦрд┐рдпреЛрдВ рдХреА рддрд░рд╣ рд╣реИ рдЬреЛ рд╡реЗрдм 1.0 рдХреЗ рдпреБрдЧ рдореЗрдВ рд╕рд╛рдЗрдЯреЛрдВ рдкрд░ рдХрд░реНрд╕рд░ рдХреЗ рдмрд╛рдж рднрд╛рдЧреЗ рдереЗ!)ред рдХреНрдпреВрдЯреЗрдмрд▓ рд╡реНрдпреВ рдХреЛ рдУрд╡рд░рд▓реЛрдб рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реЛрдЧрд╛, рд▓реЗрдХрд┐рди рдлрд┐рд░ рд╕рднреА рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХреЛ рдмрджрд▓рдирд╛ рд╣реЛрдЧрд╛; рдЗрд╕рдХреЗ рдмрдЬрд╛рдп, рдореИрдВрдиреЗ рдПрдХ рдЕрд▓рдЧ рд╡рд┐рдЬреЗрдЯ рд▓рд┐рдЦрд╛, рдЬреЛ рдПрдХ рдкреНрд░рдХрд╛рд░ рдХрд╛ рд╕реЙрдХреЗрдЯ рд╣реИ рдЬреЛ рдореМрдЬреВрджрд╛ рдХреНрдпреВрдЯреЗрдмрд▓ рд╡реНрдпреВ рдореЗрдВ рд╕рдВрд▓рдЧреНрди рд╣реЛрддрд╛ рд╣реИред
рдЗрд╕ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ рдЪрд╛рд░ рд╡рд░реНрдЧ рд╢рд╛рдорд┐рд▓ рд╣реИрдВ, рдЬрд┐рдирдореЗрдВ рд╕реЗ рдореБрдЦреНрдп рд╣реИрдВ:
InsertRemove :: рдмрдЯрди ,
InsertRemove :: рдкреИрдирд▓, рдФрд░ рджреЛ рд╕рд╣рд╛рдпрдХ рдкреНрд░рджрд░реНрд╢рди рдХреНрд╖рдорддрд╛рдПрдБ:
InsertRemove рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдбреЗрдЯрд╛ рдореИрдЯреНрд░рд┐рдХреНрд╕ рдХреЗ рднрдВрдбрд╛рд░рдг рдХреЗ рд▓рд┐рдП рдПрдХ рдХрдВрдЯреЗрдирд░
:: рдореИрдЯреНрд░рд┐рдХреНрд╕ рд╡реИрдХреНрдЯрд░ рдФрд░ рдПрдХ рдореЙрдбрд▓ - рдЗрд╕ рдХрдВрдЯреЗрдирд░ рдХрд╛ рдЗрдВрдЯрд░рдлрд╝реЗрд╕
InsertRemove :: рдореЙрдбрд▓ ред
рдмрдЯрди рд╡рд┐рдЬреЗрдЯ рдкрд░ рд╕реНрдерд┐рддрд┐ рдХреА рдЧрдгрдирд╛ рдХрд░рддрд╛ рд╣реИ рдЬреЛ рд╡рд░реНрддрдорд╛рди рд╕рдордиреНрд╡рдп рдФрд░ рд╡рд░реНрддрдорд╛рди рдиреАрддрд┐ рдореВрд▓реНрдп (
InsertRemove :: рдиреАрддрд┐ ) рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд╣реИ, рдпрд╣ рд╕реНрддрдВрдн рдХреА рдЪреМрдбрд╝рд╛рдИ рдФрд░ рдкрдВрдХреНрддрд┐ рдКрдВрдЪрд╛рдИ рд╕реЗ рдЧрдгрдирд╛ рдХрд░рддрд╛ рд╣реИред рдПрдХ рд╕рдордиреНрд╡рдп рдЗрди рдЖрдпрд╛рдореЛрдВ рдХрд╛ рдпреЛрдЧ рд╣реИ, рджреВрд╕рд░рд╛ рд╕реАрдорд╛ рдпрд╛ рд░реЗрдЦрд╛ рдХреЗ рдордзреНрдп рдХрд╛ рдирд┐рдХрдЯрддрдо рдорд╛рди рд╣реИред
int coord1; int coord2 = 0; int sizes[m]; if (_orientation == Qt::Horizontal) { for (int i=0;i<m;i++) sizes[i] = table->columnWidth(i); for (int i=0;i<n;i++) coord2 += table->rowHeight(i); } else { for (int i=0;i<m;i++) sizes[i] = table->rowHeight(i); for (int i=0;i<n;i++) coord2 += table->columnWidth(i); } if (_type == InsertRemove::Insert) nearestBorder(_policy,point1+offset1,sizes,m,&_modelIndex,&coord1); else
рдиреАрддрд┐рдпрд╛рдВ рд╣реИрдВ: рд╕рдореНрдорд┐рд▓рд┐рдд рдХрд░реЗрдВ, рд╣рдЯрд╛рдПрдВ, рдХреЗрд╡рд▓ рд╢реБрд░реБрдЖрдд рдореЗрдВ рдбрд╛рд▓реЗрдВ, рдХреЗрд╡рд▓ рдЕрдВрдд рдореЗрдВ рд╕рдореНрдорд┐рд▓рд┐рдд рдХрд░реЗрдВ, рдХреНрдпреЛрдВрдХрд┐ рд╕рднреА рдореЙрдбрд▓ рдЗрди рд╕рднреА рдЬреЛрдбрд╝рддреЛрдбрд╝ рдХреА рдЕрдиреБрдорддрд┐ рдирд╣реАрдВ рджреЗ рд╕рдХрддреЗ рд╣реИрдВред
рдмрдЯрди рдХреЗ рд▓рд┐рдП, рдореИрдВрдиреЗ рдореВрд▓ рдЕрд╡рдзрд╛рд░рдгрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛, рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ Qt рдореЗрдВ рд╡реНрдпрд╛рдкрдХ рд░реВрдк рд╕реЗ рд╡рд╕реНрддреБрдУрдВ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЗрд╕рдХрд╛ рдорддрд▓рдм рдпрд╣ рд╣реИ рдХрд┐ рдЬрдм рдорд╛рддрд╛-рдкрд┐рддрд╛ рдХреЛ рд╣рдЯрд╛ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рд╕рднреА рдореЗрдореЛрд░реА рдСрдмреНрдЬреЗрдХреНрдЯ рд╣рдЯрд╛ рджрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ, рдФрд░ рд╡рд┐рдЧреЗрдЯреНрд╕ рдХреЗ рд▓рд┐рдП, рдЗрд╕рдХрд╛ рдорддрд▓рдм рдпрд╣ рднреА рд╣реИ рдХрд┐ рдмрдЪреНрдЪреЗ рдХреЗ рд╡рд┐рдЬреЗрдЯреНрд╕ рдорд╛рддрд╛-рдкрд┐рддрд╛ рдХреЗ рднреАрддрд░ рдкреНрд░рджрд░реНрд╢рд┐рдд рд╣реЛрддреЗ рд╣реИрдВ (рдпрджрд┐ рд╕рдВрд╡рд╛рдж рдмреЙрдХреНрд╕ рдирд╣реАрдВ рд╣реИрдВ) рдФрд░ рдЗрд╕рдХреЗ рд╕рдордиреНрд╡рдп рдкреНрд░рдгрд╛рд▓реА рдореЗрдВред
рд╢реИрд▓реА рдХрд╛ рд╡рд░реНрдгрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реАрдПрд╕рдПрд╕ рд╕реЗ рдмреЗрд╣рддрд░ рдХреБрдЫ рдирд╣реАрдВ рд╣реИ, рдФрд░ рдбреЗрдЯрд╛ рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреНрдпреВрдЯреА рд╕рдВрд╕рд╛рдзрди рдкреНрд░рдгрд╛рд▓реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛, рдЬреЛ рдЖрдкрдХреЛ рдмрд╛рдЗрдирд░реА рдореЗрдВ рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреЛ рдПрдореНрдмреЗрдб рдХрд░рдиреЗ рдФрд░ рдЙрдиреНрд╣реЗрдВ рд░реВрдЯ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдХреЗ рд░реВрдк рдореЗрдВ ':' рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рд░реВрдк рдореЗрдВ рдПрдХреНрд╕реЗрд╕ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред
QString plus_css = "* {image: url(':/plus-icon.png'); border: 0;}" "*:hover {image: url(':/plus-icon-hover.png');}" "*:pressed {image: url(':/plus-icon-pressed.png');} "; QString minus_css = "* {image: url(':/minus-icon.png'); border: 0;}" "*:hover {image: url(':/minus-icon-hover.png');}" "*:pressed {image: url(':/minus-icon-pressed.png');} "; if (_type == Insert) setStyleSheet(plus_css); else setStyleSheet(minus_css);
рдЬрдм рдПрдХ рдмрдЯрди рджрдмрд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдореЙрдбрд▓ рдореЗрдВ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╕рдореНрдорд┐рд▓рди рдпрд╛ рд╡рд┐рд▓реЛрдкрди рдХреЛ рдКрдкрд░ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред
void Button::on_clicked() { QTableView* table = dynamic_cast<QTableView*>(this->parent()); if (!table) return; QAbstractItemModel* model = table->model(); if (!model) return; if (_type == InsertRemove::Insert) { if (_orientation == Qt::Horizontal) model->insertColumn(_modelIndex); else model->insertRow(_modelIndex); } else
рдЕрдм рдЬрдм рдмрдЯрди рдХреЗ рд╕рд╛рде рд╕рдм рдХреБрдЫ рд╕реНрдкрд╖реНрдЯ рд╣реИ, рдкреИрдирд▓ рдкрд░ рдЬрд╛рдПрдВред рд╡рд╣ рдЗрди рдмрдЯрдиреЛрдВ рдХреЛ рдмрдирд╛рдиреЗ рдФрд░ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░ рд╣реИ рдФрд░ рдЙрдиреНрд╣реЗрдВ рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ рдФрд░ рдиреАрддрд┐рдпреЛрдВ рдХреЛ рдкрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд╕рд╛рде-рд╕рд╛рде рдПрдХ рддрд╛рд▓рд┐рдХрд╛ рдХреЗ рд╕рд╛рде рдмрдЯрди рдЕрдкрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдПред
void Panel::attach(QTableView* table) { for (int i=0;i<4;i++) _buttons[i]->setParent(table); _table = table; table->setMouseTracking(true); table->viewport()->installEventFilter(this); connect(table->horizontalHeader(),SIGNAL(sectionResized(int,int,int)),this,SLOT(placeButtons())); connect(table->verticalHeader(),SIGNAL(sectionResized(int,int,int)),this,SLOT(placeButtons())); placeButtons(); }
Qt рдХреА рдореЗрд░реА рдкрд╕рдВрджреАрджрд╛ рд╡рд┐рд╢реЗрд╖рддрд╛ рдИрд╡реЗрдВрдЯ рдлрд┐рд▓реНрдЯрд░ (QEventFilter) рд╣реИред рдпрд╣ рдЖрдкрдХреЛ рдкреНрд░рд╛рд░реНрдердирд╛ рдФрд░ рд╡рд╕реНрддреБ рдХреЗ рдЖрдВрддрд░рд┐рдХ рдЬреАрд╡рди рдкрд░ рдЖрдХреНрд░рдордг рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ, рдЬрд┐рд╕рд╕реЗ рдПрдирдХреИрдкреНрд╕реБрд▓реЗрд╢рди рдХрд╛ рдЙрд▓реНрд▓рдВрдШрди рд╣реЛрддрд╛ рд╣реИред рдЬрдм рдореИрдВ рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реЛрдЪрддрд╛ рд╣реВрдВ, рддреЛ рдореИрдВ рдорд╛рдирд╕рд┐рдХ рд░реВрдк рд╕реЗ рдирдВрдЧреЗ WinApi, crippy macros, рд╕рдВрд░рдЪрдирд╛рдУрдВ рдФрд░ рд╢рд╛рдк рдЬреИрд╕реЗ lpcwstr рдХреЗ рджрд┐рдиреЛрдВ рдореЗрдВ рд╡рд╛рдкрд╕ рдЬрд╛рддрд╛ рд╣реВрдВ, рдЬрдм рдбреЗрд╕реНрдХрдЯреЙрдк рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдмрдирдирд╛ рдЕрдзрд┐рдХ рдХрдард┐рди рдерд╛ред рдЗрд╕ рддрд░рд╣ рдХреЗ рдлрд┐рд▓реНрдЯрд░ рдХреА рдорджрдж рд╕реЗ рдкреИрдирд▓ рдХреНрдпреВрдЯреЗрдмрд▓ рд╡реНрдпреВ рдкрд░ рдорд╛рдЙрд╕ рдХреА рдЖрд╡рд╛рдЬрд╛рд╣реА рдкрд░ рдирдЬрд░ рд░рдЦрддрд╛ рд╣реИред рдореЗрд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдлрд╝рд┐рд▓реНрдЯрд░ рд╣реА рдкреИрдирд▓ рд╣реИред рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ рдореИрдВ рдлрд╝рд┐рд▓реНрдЯрд░ рдХреЛ рдПрдХ рдЕрд▓рдЧ рд╡рд░реНрдЧ рдмрдирд╛рдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛ рдФрд░ рдШрдЯрдирд╛ рдХреЛ рдПрдХ рд╕рдВрдХреЗрдд рдореЗрдВ рдбрд╛рд▓ рджрд┐рдпрд╛ рдерд╛, рд▓реЗрдХрд┐рди рдлрд┐рд░ рдореИрдВрдиреЗ рд╕реЛрдЪрд╛ рдХрд┐ рдПрдХ рдЕрдЪреНрдЫрд╛ рдХрд╛рд░рдг рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рдШрдЯрдирд╛рдПрдБ рдХреНрдпреЛрдВ рд╣реЛрддреА рд╣реИрдВ, рдФрд░ рд╕рдВрдХреЗрдд рд╕рд┐рдЧреНрдирд▓ рд╣реИрдВ рдФрд░ рд╕рдм рдХреБрдЫ рдвреЗрд░ рдирд╣реАрдВ рд╣реИ (рдЬреИрд╕рд╛ рдХрд┐ рдЕрдЧрд░ рд╕реНрдореГрддрд┐ рдореБрдЭреЗ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдХрд╛рдо рдХрд░рддреА рд╣реИ, рддреЛ) .Net рдореЗрдВ)ред рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдШрдЯрдирд╛рдПрдВ рд╡рд┐рдЬреЗрдЯ рдХрд╛ рдЖрдВрддрд░рд┐рдХ рдЬреАрд╡рди рд╣реИрдВ, рдФрд░ рд╕рдВрдХреЗрдд рдЗрд╕рдХреЗ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рд╣реИрдВ, рдФрд░ рджреВрд╕рд░реА рдмрд╛рдд, рдпрд╣ рд╕реНрдкрд╖реНрдЯ рд╣реИ рдХрд┐ рдмрд╛рддрдЪреАрдд рдХреА рдХрдо рдкрд░рддреЛрдВ рдХреЗ рдХрд╛рд░рдг рдШрдЯрдирд╛рдПрдВ рддреЗрдЬ рд╣реЛрддреА рд╣реИрдВ, рдЬреЛ рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реЛ рд╕рдХрддреА рд╣реИ, рдЬрдм рдПрдХ рдШрдЯрдирд╛ рдкреНрд░рддрд┐ рд╕реЗрдХрдВрдб рд╕реИрдХрдбрд╝реЛрдВ рдмрд╛рд░ рдХрд╣рд╛ рдЬрд╛рдПрдЧрд╛ред рд╣рд╛рд▓рд╛рдВрдХрд┐ рдореИрдВ рдЗрди рдЧрдгрдирд╛рдУрдВ рдХрд╛ 100% рдирд┐рд╢реНрдЪрд┐рдд рдирд╣реАрдВ рд╣реВрдВред рддреЛ, рд╣рдо рд╕рднреА рдХреА рдЬрд░реВрд░рдд рд╣реИ рдорд╛рдЙрд╕ рдЖрдВрджреЛрд▓рди рдШрдЯрдирд╛ рдХреЛ рдЯреНрд░реИрдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдФрд░ рдмрдЯрди рдХреЗ рд▓рд┐рдП рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ рдкрд╛рд╕ рд╣реИред
bool Panel::eventFilter(QObject* object, QEvent* event) { if (event->type() == QEvent::MouseMove && object == _table->viewport()) { QMouseEvent* mouseEvent = dynamic_cast<QMouseEvent*>(event); if (!mouseEvent) return false; for (int i=0;i<4;i++) _buttons[i]->setPoint(mouseEvent->pos()); } return false; }
рдХрдВрдЯреЗрдирд░ рдФрд░ рдкреНрд░рджрд░реНрд╢рди рдореЙрдбрд▓ рд╕реНрд╡рдпрдВ-рд╕реНрдкрд╖реНрдЯ рдкреНрд░рддреАрдд рд╣реЛрддреЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рд╣рдо рддреБрд░рдВрдд рдЖрд╡реЗрджрди рдХреЗ рд▓рд┐рдП рдЖрдЧреЗ рдмрдврд╝рддреЗ рд╣реИрдВ: рдПрдХ рдореЙрдбрд▓ рдмрдирд╛рдПрдВ, рдПрдХ рддрд╛рд▓рд┐рдХрд╛ рдмрдирд╛рдПрдВ, рдПрдХ рдкреИрдирд▓ рдмрдирд╛рдПрдВ, рдкреИрдирд▓ рдХреЛ рддрд╛рд▓рд┐рдХрд╛ рдореЗрдВ рд╕рдВрд▓рдЧреНрди рдХрд░реЗрдВред
QTableView view; view.setModel(&model); Panel panel(EverythingAllowed,EverythingAllowed); panel.setPolicy(Qt::Horizontal, (PolicyFlags) RemoveAllowed | AppendAllowed ); panel.attach(&view);
рдЗрд╕ рд╡рд┐рдЬреЗрдЯ рдХреА рдХрдорд┐рдпреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдпрд╣ рд╣реИ рдХрд┐ рдпрд╣ рдПрдХ рдХреНрдпреВрдЯреЗрдмрд▓ рд╡реНрдпреВ рд╕реЗ рдЬреБрдбрд╝рд╛ рд╣реИ (рдпрд╣ рдЗрд╕ рддрдереНрдп рдХреЗ рдХрд╛рд░рдг рд╣реИ рдХрд┐ рдореБрдЭреЗ рдЗрд╕рдХреЗ рд▓рд┐рдП рдЗрд╕рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдереА), рд╣рд╛рд▓рд╛рдВрдХрд┐ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдЕрдиреНрдп рдкреНрд░рдХрд╛рд░ рдХреЗ рд╡рд┐рдЪрд╛рд░реЛрдВ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдпрджрд┐ рд╕рдордп рдФрд░ рдЗрдЪреНрдЫрд╛ рд╣реИ, рддреЛ рдореИрдВ рдЗрд╕ рдкреНрд░рд╢реНрди рдХреЛ рд╣рд▓ рдХрд░реВрдВрдЧрд╛ред
рд╢рд╛рдпрдж рдореЗрд░рд╛ рдХрд╛рдо рдЖрдкрдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧреА рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рдЗрд╕реЗ рдЬреАрдердм рдкрд░ рдпрд╛ рдореЗрд░реЗ рд╕рд░реНрд╡рд░ рд╕реЗ рд▓рд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рд╕рдм рдХреБрдЫ рдЖрдк рдХреА рдЬрд░реВрд░рдд рд╣реИ InsertRemove рдирд╛рдорд╕реНрдерд╛рди рдореЗрдВ рд╕рдореНрдорд┐рд▓рд┐рдд рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рд╣реИ, рдпрд╣ рдкреНрд░реЛрдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реИред рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреЗ рд▓рд┐рдП рдЕрднреА рддрдХ рдкрд░реНрдпрд╛рдкреНрдд рдФрд░ рдирдо рдирд╣реАрдВ рд╣реИред рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдФрд░ рдпреЛрдЧрджрд╛рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрд╡рддрдВрддреНрд░ред
рд▓рд┐рдВрдХ:
git clone git://github.com/overloop/insertremovepanel.git git clone git://mugiseyebrows.ru/insertremovepanel.git
рджреЗрдЦреЗрдВ:
github.com |
mugiseyebrows.ruрдбрд╛рдЙрдирд▓реЛрдб:
github.com |
mugiseyebrows.ru