How to customize the toolbar to work with a QTextEdit ?
-
Good evening to the whole community, I am writing to you because I am working on a text editor project and I am having difficulties with inserting the elements in the toolbar (QToolBar) and connecting this bar with the text box (QTextEdit). I actually wrote some code to create a tool that allows the user to choose the color of the text. This is the following code:
QColor couleur= QColorDialog::getColor( Qt::black,this);
QPalette palette ;
palette.setColor(QPalette::WindowText,couleur);
outils->addWidget(palette);
But at the end of the code the QtCreator IDE tells me:
no viable conversion from 'QPalette' to 'QWidget *'
So I don't know how, I will insert this tool in the toolbar. I also inserted a tool for the font in the bar and I connected it to a slot of the QTextEdit. Here is the code:
outils->setMovable(false);
outils->setFloatable(false);
QFontComboBox *police = new QFontComboBox;
outils->addWidget(police);
connect(police,SIGNAL(currentFontChanged()),texte1,SLOT(setFontFamily()));
When I generate the editor program (after removing the code on the color tool), when I change the font in the toolbar, the text font doesn't change and I don't know where my error is .
Thank you for your answers in advance, good evening! -
Hi,
It's your job to write the code that will apply the font to the current block of your QTextEdit.
As for QPalette, the error tells it pretty clearly. It's not a QWidget based class. However your logic is not clear. What exactly do you want to when your selected the color ? Apply it to the text under the cursor ? Create an action that will trigger that that shows that selected color ?
-
Then get the current format, update it with the color and insert a new block with it.
-
See for example QTextCurso::setCharFormat.