私はJuce GUIライブラリをC++で使用し始めました。私は後でファイル名を表示するカスタムリストボックスを作成しようとしています。今、マウスが入っている/出ている/クリックされたときに、このカスタムリストボックスの行の背景色を変更する必要があります。問題は、MouseEnter()、MouseExit()、およびMouseUp()が機能しないことです。コードは次のとおりです。Juce C++ - マウスイベントが機能しない
class LeftExplorerItem : public Component, public MouseListener {
public:
LeftExplorerItem(String name = "LeftExplorerItem") : Component(name), isActive(false) {
setSize(100, 20);
addMouseListener(this, true);
}
void paint(Graphics& g) override {
if (!isActive) g.setColour(Colour(40, 40, 40));
else g.setColour(Colour(150, 190, 255));
g.fillRoundedRectangle(2, 2, getWidth() - 4, getHeight() - 4, 4);
g.setColour(Colours::white);
g.drawText("Frame #", 40, 0, 100, 25, Justification::centredLeft);
}
void mouseEnter(const MouseEvent& event) override {
AlertWindow("", "", AlertWindow::AlertIconType::InfoIcon);
isActive = true;
}
void mouseExit(const MouseEvent& event) override {
isActive = false;
}
void mouseUp(const MouseEvent& event) override {
AlertWindow("", "click", AlertWindow::AlertIconType::InfoIcon);
}
void resized() override {
}
private:
bool isActive;
JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR(LeftExplorerItem)
};
これは私のカスタムリストボックスの各項目の単なるクラスです。全てが問題なく表示されることを覚えておいてください(唯一の問題は、マウスイベントがトリガーされないということです)。ここには何が欠けていますか?
だけで試してみました)、まだイベントトリガーされることはありません飽きません。私はb)を試みます。 – DimChtz
空のプロジェクトにコピーして呼び出されますが、1)AlertWindowオブジェクトを作成していますが、表示されないため、何も表示されません。2)コンポーネントが再描画するように指示しません。視覚的には何も起こりません。 – bgporter
なぜalertwindowが表示されず、再描画するのですか? – DimChtz